如何在设置Firebase后找回文档?

15 浏览
0 Comments

如何在设置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

不确定为什么不起作用。

需要帮助吗?

0
0 Comments

在上述代码中,使用doc()方法并不传递参数会立即返回一个包含ID的DocumentReference对象。然后,我们可以通过id属性获取该文档的ID。接下来,我们可以使用set()方法来创建或更新该文档的内容。

根据上述问题的描述,这个问题的原因是在使用set()方法后,如何获取已设置的文档。解决方法是在set()方法的then()回调函数中使用之前获取的文档ID。

因此,我们可以按照以下步骤来解决这个问题:

1. 使用doc()方法获取一个DocumentReference对象,并通过id属性获取该文档的ID。

2. 使用set()方法来创建或更新文档的内容。

3. 在then()回调函数中使用之前获取的文档ID,如果需要的话。

通过上述步骤,我们可以在设置文档后获取已设置的文档。

0