在 Firestore V9 中使用 async/await 删除文档

Delete document with async/await in Firestore V9

我在 Expo/React Native 中使用 Firestore v9。我无法使用 async/awaitdeleteDoc 函数正确删除文档。文档删除正常,但我的应用程序没有像我预期的那样等待完成操作。它的行为是异步的。

这是调用代码

showDeleteConfirmation(data)
{
    Alert.alert(
        this.title,
        this.message,
        [
          {text: "Yes", onPress: () => this.deleteDococument(data)},
          {text: "No", style: 'cancel'},
        ],
        { cancelable: false }
    )
}

async deleteDococument(data)
{
    const isDataDeleted = await deleteDocFirestore(data)
    console.log(isDataDeleted) // i get undefined
}

删除 DocFirestore 函数

const deleteDocFirestore = async (user) => {
    try {

    const docUserRef = doc(db, "users", user.UserId);
    
    const userDeleted = await deleteDoc(docUserRef);

    return userDeleted
  } catch (error) {
    console.log(`error`, error.message);
  }
};

deleteDoc() 函数 returns void 所以你可以简单地从 deleteDocFirestore 函数或 false return true如果抛出错误。