如何在保持键顺序的同时浅查询 Firebase 实时数据库
How to Shallow Query Firebase Realtime Database While Maintaining Key Order
我目前正在使用 snapshot.forEach 方法来维护顺序(这在我的应用程序中是必不可少的),但这需要我进行快照深度查询。有没有办法在没有 运行 完整深度查询的情况下执行相同的功能?
唯一可以从实时数据库获取没有值的键的 API 表面是它的 REST API:https://firebase.google.com/docs/database/rest/retrieve-data#shallow
那里发生的唯一(也是默认)排序是通过节点键进行的。根据您使用的阅读工具,JSON 它们可能会在那里无序显示,因此您应该始终在代码中明确地重新排序它们,但是您 可以 使用使用 startAfter
和 limitToFirst
.
获取数据切片的键顺序
举个例子,使用刚才另一个问题的数据:https://Whosebug.firebaseio.com/70102492/Main/News/Categories/Education.json?print=pretty
您可以通过以下方式获取前三个节点密钥:https://Whosebug.firebaseio.com/70102492/Main/News/Categories/Education.json?print=pretty&shallow=true&limitToFirst=3
我目前正在使用 snapshot.forEach 方法来维护顺序(这在我的应用程序中是必不可少的),但这需要我进行快照深度查询。有没有办法在没有 运行 完整深度查询的情况下执行相同的功能?
唯一可以从实时数据库获取没有值的键的 API 表面是它的 REST API:https://firebase.google.com/docs/database/rest/retrieve-data#shallow
那里发生的唯一(也是默认)排序是通过节点键进行的。根据您使用的阅读工具,JSON 它们可能会在那里无序显示,因此您应该始终在代码中明确地重新排序它们,但是您 可以 使用使用 startAfter
和 limitToFirst
.
举个例子,使用刚才另一个问题的数据:https://Whosebug.firebaseio.com/70102492/Main/News/Categories/Education.json?print=pretty
您可以通过以下方式获取前三个节点密钥:https://Whosebug.firebaseio.com/70102492/Main/News/Categories/Education.json?print=pretty&shallow=true&limitToFirst=3