【发布时间】:2020-06-02 20:37:46
【问题描述】:
我有一个 Firebase 实时数据库。用户可以这样做:
将项目添加到数据库
更新数据库中的项目
我有一个在特定位置跟踪数据库的功能。目前我有一个新项目和更新项目的功能
当有新内容和现有对象更新时,将调用此函数:
const readyForData = async () => {
const ref = database().ref('users/' + user.id + '/data');
ref.on('child_added', snapshot => {
const ref = database().ref('/data/' + snapshot.key);
ref.on('value', async (snapshot) => {
if (snapshot.val()) {
let data = snapshot.val() ? snapshot.val() : {};
}
})
})
}
我应该做两个单独的on() 函数吗?
对于新项目
用于对象更新
编辑:
如上所述,当我们在数据库中添加新对象或更改现有对象时,我有一个响应的函数。
如何重建它以使其更有效地工作?可以单独支持新对象和更新对象吗?
【问题讨论】:
-
我不完全清楚你的目标是什么,但是将一个 on() 嵌套在另一个 on() 中,特别是考虑到两个监听器都没有被移除,这听起来是一个非常糟糕的主意,因为这些侦听器会泄漏并可能提取比您预期的更多的数据。
-
@DougStevenson 我认为这也做得不好,我正在寻找如何改进它
-
我认为如果您编辑问题以更清楚地描述您的目标是什么会有所帮助。
标签: javascript reactjs firebase react-native firebase-realtime-database