如何在设置Firebase后找回文档?
如何在设置Firebase后找回文档?
我设置一个新的文档ID后,如何获取它?我有几次尝试,但这是我最新的尝试:
handleCreateCard = async (name, token) => { try { const new_card = await firestore() .collection('Cards') .doc() .set({ user_id: user.uid, name: name, token: token, }) .then(function(docRef) { console.log("写入的文档ID为:", docRef.id); }) .then(() => this.props.navigation.navigate("CardDetail", {cardId: 2})); // console.log("尝试!", handleCreateCard); // console.log("尝试2", new_card); } catch (error) { console.log(error.toString(error)); } }
docRef
这一行给我带来了错误:
错误:TypeError: null不是一个对象(评估'docRef.id')
记录handleCreateCard
错误:ReferenceError: 找不到变量:handleCreateCard
然后是new_card
:“这里是undefined”
尝试这样做:
.then(docRef => { console.log("写入的文档ID为:", this.id); // 也尝试了docRef.id })
我得到:写入的文档ID为:undefined
使用docRef.id:TypeError: null不是一个对象(评估'docRef.id')
文档已经被创建,所以不确定为什么没有返回
我尝试了几种方法,然后还尝试了这里的所有方法,其中一些在上面:Firestore - How to get document id after adding a document to a collection
不确定为什么不起作用。
需要帮助吗?
在上述代码中,使用doc()
方法并不传递参数会立即返回一个包含ID的DocumentReference
对象。然后,我们可以通过id
属性获取该文档的ID。接下来,我们可以使用set()
方法来创建或更新该文档的内容。
根据上述问题的描述,这个问题的原因是在使用set()
方法后,如何获取已设置的文档。解决方法是在set()
方法的then()
回调函数中使用之前获取的文档ID。
因此,我们可以按照以下步骤来解决这个问题:
1. 使用doc()
方法获取一个DocumentReference
对象,并通过id
属性获取该文档的ID。
2. 使用set()
方法来创建或更新文档的内容。
3. 在then()
回调函数中使用之前获取的文档ID,如果需要的话。
通过上述步骤,我们可以在设置文档后获取已设置的文档。