我正在构建一个以 firebase 作为后端的聊天应用程序。问题是我在 firebase 数据库中创建了两个表,一个用于存储用户和其他人的消息。我的表如下...{ "chat-group" : { "a0d4086c-66f7-4437-a23f-4b8e07da9bb8" : { "userId1" : "cdc0f59c-66b2-4bac-abe1-fe89a0e29a28", "userId2" : "382a321d-8bcd-4b62-bb4e-25b7c1df4ca2" }, "b9afcd88-0b6a-4e77-8dd7-ea3fc17962b9" : { "userId1" : "cdc0f59c-66b2-4bac-abe1-fe89a0e29a28", "userId2" : "cb754c6b-1702-47dd-a3b8-b34e970ea9a2" } }, "messages" : { "a0d4086c-66f7-4437-a23f-4b8e07da9bb8" : { "-LtT1kMDQrrkSbIDscnz" : { "name" : "Parth Shrivastav", "text" : "hello", "timestamp" : 1573535811230 } }, "b9afcd88-0b6a-4e77-8dd7-ea3fc17962b9" : { "-LtT1xclHzrnY_xSWrMJ" : { "name" : "Parth Shrivastav", "text" : "😃", "timestamp" : 1573535865601 } } }}我想将用户表下的聊天 ID 与消息下的聊天 ID 相关联,并在该聊天 ID 的自动生成的 ID 下检索消息。database().ref('messages/b9afcd88-0b6a-4e77-8dd7-ea3fc17962b9) this.ref .limitToLast(20) .on('child_added', snapshot => snapshot.forEach(msgdata => { console.log(msgdata)通过对数据使用 forEach,数据库似乎是静态的,并且在数据中似乎有任何新消息可用时不会更新。我需要为任何新数据刷新屏幕。
1 回答
![?](http://img1.sycdn.imooc.com/54584f240001db0a02200220-100-100.jpg)
侃侃尔雅
TA贡献1801条经验 获得超16个赞
由于您正在侦听child_added事件,因此 Firebase 客户端将为messages/b9afcd88-0b6a-4e77-8dd7-ea3fc17962b9. 这意味着您不需要遍历snapshot代码中的子项,而可以直接从snapshot.
.on('child_added', snapshot =>
console.log(snapshot.val());
}
添加回答
举报
0/150
提交
取消