【问题标题】:Issue with pushing data into firebase将数据推送到 Firebase 的问题
【发布时间】:2020-04-09 14:06:51
【问题描述】:

在这里,我试图将数据推送到 Firebase 的数组中,但它会持续推送数据,直到应用程序的缓存被销毁。这是我的代码和 Firebase 屏幕截图。

代码:

 var Input = {
                AaMessage: 'brb',
            }
            var query = firebase.database().ref('UserList/');
            query
                .orderByChild('PostId')
                .equalTo(this.state.PostID)
                .on('value', snapshot => {
                    snapshot.forEach(child => {                      
                        firebase
                            .database()
                            .ref('UserList/' + child.key + '/Paymentdetails')
                            .push(Input)
                            .then(resp => {
                                console.log('Done', resp);
                            })
                            .catch(err => {
                                console.log('Error', err);
                            });
                    });
                }); 

Firebase 视图:

【问题讨论】:

  • 请编辑问题以说明您希望代码执行的操作。

标签: reactjs firebase react-native firebase-realtime-database


【解决方案1】:

您正在打开一个侦听器,该侦听器写入它侦听的同一节点。即使这不会导致递归,每次更新 UserList 时,您仍然要为每个孩子编写一个新文档。

另外,避免在单个 rt-db 节点中混合列表和文档。那只会导致痛苦。

很难理解你想要做什么——但看起来你可能想调用once而不是on,所以监听器不会保持打开状态并继续写(可能很多)新的文件。

此外,我建议不要写入您正在收听的节点。 database().ref("SomewhereElse/").push(doc);

我不知道你为什么要在快照更新时推送新文档,你会得到很多重复的。如果这是一个错误,您可能希望在 onCreate 触发器中执行这些推送。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 2016-12-31
    • 1970-01-01
    相关资源
    最近更新 更多