让我们假设上面的firebase数据库模式.
我想要的是在"15039996197"时间戳之后检索消息.每个消息对象都有一个createdAt
属性.
如何在特定时间戳之后才能收到消息?在这种情况下,最后两条消息是我想要检索的.
我试过firebaseb.database().ref(`/rooms/$roomKey/messages`).startAt('15039996197')
但失败了.它返回0.我该怎么做?
你的查询的情况是它期望message
节点应该有一个数字值开始,在这种情况下你想要一个具有名称的子节点createdAt
.因此,在这种情况下,您必须指定要按顺序排序createdAt
,因此您需要执行此操作
firebase.database().ref(`/rooms/$roomKey/messages`).orderByChild('createdAt').startAt('15039996197').on(//code);
这样它就会返回里面的所有节点,message
这个节点有一个名为createdAt
它的子节点15039996197
.对你的查询进行排序可能会对性能有点不利,因为我会看一下.indexOn规则.
有关更多信息,请查看此处.
希望这可以帮助.