我的Firebase实时数据库架构:
让我们假设在Firebase数据库模式之上。我想用order_by_key()
获取前5个之后和前10个之前的数据,而不是更多。范围应为5-10。如图所示。
我的关键字总是以-
开头。
我试过了,但是失败了。它返回0。我该怎么做呢?
snapshot = ref.child('tracks').order_by_key().start_at('-\5').end_at(u'-\10').get()
发布于 2021-01-06 10:31:11
Firebase查询基于游标/锚定值,而不是偏移量。这意味着start_at
和end_at
调用需要你所订购的东西的值,所以在你的按键中它们需要这些音符的键值。
要获得您指定的切片,您需要:
ref.child('tracks').order_by_key().start_at('-MQJ7P').end_at(u'-MQJ8O').get()
如果您不知道这两个值中的任何一个,则不能指定它们,只能从第一个项目开始或从最后一个项目结束。
唯一的例外是,您可以指定limit_to_first
而不是end_at
来获取切片开始处的多个项目:
ref.child('tracks').order_by_key().start_at('-MQJ7P').limit_to_first(5).get()
或者,如果您只知道最后一项的关键字,则可以使用以下命令获取之前的五项:
ref.child('tracks').order_by_key().end_at('-MQJ8O').limit_to_last(5).get()
但您至少需要知道其中一个键,这通常是因为您已经将其显示为上一页的最后一项/下一页的第一项。
https://stackoverflow.com/questions/65589088
复制相似问题