React-Native:当应用程序离线(无法访问互联网)时,无法使用Firestore添加或设置()文档

时间:2019-04-09 14:04:21

标签: android firebase react-native google-cloud-firestore react-native-android

在脱机模式下使用.set()函数在Firestore中创建文档时遇到问题。但是.update(),.get()和.delete()函数可以在脱机模式下工作。

下面是代码段

    firebase.firestore().collection(this.state.mainCollectionId)
      .doc(this.state.authKey)
      .collection(collectionId.toString())
      .doc(docId)
      .get()
      .then(docData => {

        if (docData.exists) {
          // console.log("daily Activity exists");

        } else {

         firebase.firestore().collection(this.state.mainCollectionId)
            .doc(this.state.authKey)
            .collection(collectionId.toString())
            .doc(docId)
            .set({
              id:1234,
              collectionId: collectionId.toString(),
              authKey: this.state.userDatails.authKey,
              name: this.state.userDatails.name,
              email: this.state.userDatails.email

      }).then(data =>{});

}
});

和我得到的错误:

> Error: Firestore: The service is currently unavailable. (firestore/unavailable).
at createErrorFromErrorData (NativeModules.js:146)
at NativeModules.js:95
at MessageQueue.__invokeCallback (MessageQueue.js:392)
at MessageQueue.js:128
at MessageQueue.__guard (MessageQueue.js:291)
at MessageQueue.invokeCallbackAndReturnFlushedQueue (MessageQueue.js:127)
at debuggerWorker.js:72

1 个答案:

答案 0 :(得分:2)

我知道这个问题的答案。有一个if条件 If(docData.exists)需要删除此代码,因为firebase使用设备中的缓存。 if条件将查找缓存中不存在的文档。