【问题标题】:Tracking of an added object in the database跟踪数据库中添加的对象
【发布时间】: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


【解决方案1】:

here 所述,您应该能够使用 onSnapshot 功能(添加或编辑)跟踪您的数据收集更改

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 2018-07-07
    • 2016-01-01
    • 1970-01-01
    • 2012-11-17
    相关资源
    最近更新 更多