首页 > 解决方案 > 我们可以在读取firebase数据库节点时删除它吗

问题描述

我在 Firebase 数据库本机层遇到异常。我怀疑我们在使用以下代码读取节点时正在删除节点。

userNotification.on('value', async snapshot => {
    if (snapshot.val()) {
      const { currentUser } = firebase.auth()
      // do something here
      userNotification.remove()
    }
  })

上面的代码可以吗?或者我应该将删除代码移到 on('value') 回调之外?

我得到的例外是在下面的屏幕截图中: 在此处输入图像描述

致命异常:NSGenericException 在用于 FIRDatabaseReferences 后无法修改配置对象。-[FIRDatabaseConfig setPersistenceEnabled:]

标签: react-nativefirebase-realtime-databasereact-native-firebase

解决方案


如果代码编写正确,同时读取和写入数据库永远不会导致异常。你有一个错误的调用来启用/禁用持久性。必须在完成任何其他数据库访问之前调用它。

由于您在 iOS 上显示错误,我将向您指出 Objective-C api for persistenceEnabled,它说:

请注意,必须在创建第一个数据库引用之前设置此属性,并且每个应用程序只需调用一次。


推荐阅读