在脱机模式下使用.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
答案 0 :(得分:2)
我知道这个问题的答案。有一个if条件 If(docData.exists)需要删除此代码,因为firebase使用设备中的缓存。 if条件将查找缓存中不存在的文档。