Commit 94368ed
committed
fix(rtdb): Preserve server-side key order in order_by_key() query results
The Realtime Database server returns order_by_key() results in Firebase key
order (integer-parseable keys first, numerically; then string keys
lexicographically). Query.get() re-sorted this payload client-side with a
pure lexicographic comparison, scrambling the server order and breaking
keyset pagination (feeding the last returned key back into start_at()
returned the same page forever).
Skip the client-side sorter for order_by_key() and return the server-ordered
payload as an OrderedDict, preserving the documented return type.
Fixes #6771 parent a7aafa2 commit 94368ed
2 files changed
Lines changed: 44 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
481 | 481 | | |
482 | 482 | | |
483 | 483 | | |
484 | | - | |
485 | | - | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
486 | 487 | | |
487 | 488 | | |
488 | 489 | | |
| |||
618 | 619 | | |
619 | 620 | | |
620 | 621 | | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
621 | 626 | | |
622 | 627 | | |
623 | 628 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1044 | 1044 | | |
1045 | 1045 | | |
1046 | 1046 | | |
| 1047 | + | |
| 1048 | + | |
| 1049 | + | |
| 1050 | + | |
| 1051 | + | |
| 1052 | + | |
| 1053 | + | |
| 1054 | + | |
| 1055 | + | |
| 1056 | + | |
| 1057 | + | |
| 1058 | + | |
| 1059 | + | |
| 1060 | + | |
| 1061 | + | |
| 1062 | + | |
| 1063 | + | |
| 1064 | + | |
| 1065 | + | |
| 1066 | + | |
| 1067 | + | |
| 1068 | + | |
| 1069 | + | |
| 1070 | + | |
| 1071 | + | |
| 1072 | + | |
| 1073 | + | |
| 1074 | + | |
| 1075 | + | |
| 1076 | + | |
| 1077 | + | |
| 1078 | + | |
| 1079 | + | |
| 1080 | + | |
| 1081 | + | |
| 1082 | + | |
| 1083 | + | |
1047 | 1084 | | |
1048 | 1085 | | |
1049 | 1086 | | |
| |||
0 commit comments