Firestore set()突然不在then语句中返回并且未添加文档

时间:2019-08-03 15:01:52

标签: javascript firebase google-cloud-firestore

具有一些Firestore .set()函数,这些函数突然不起作用-它们在then语句中未执行任何操作,并且如果将它们格式化为异步/等待,则在执行“等待”之后没有代码。没有将文档添加到Firestore。

首先从Firestore文档中获取了此信息:

export function addProfileToDB(advisor, uid, state) {

    firebaseDB.collection("users").doc(uid).set(profile)
        .then(function(docRef) {
            console.log("User added with ID: ", docRef.id) // never fires
        })
        .catch(function(error) {
            console.error(error) // never fires
        })

}

尝试了this answer

export async function addProfileToDB(profile, uid, state) {

  const docRef = firebaseDB.collection("users").doc(uid)

  console.log(docRef) // returns correctly

  await docRef.set(profile)

  console.log('added') // never happens

}

在同一设置中使用add()和read函数可以正常工作,但是在这种情况下,我需要指定doc id(uid)。有想法吗?

2 个答案:

答案 0 :(得分:0)

您可以使用try catch块包装async / await版本。 与调用addProfileToDB的代码相同(您也应该等待它)。 也许您会看到一些东西。

如果是触发addProfileToDB的云功能,您是否在firebase控制台上观看了日志?

答案 1 :(得分:0)

这最终是由于注销用户功能与addProfileToDB同时被调用而导致的。尽管addProfileToDB不需要登录的用户,但由于某种原因,中断导致该设置无法通过。我将注销用户功能移到以后触发,现在所有功能都按预期运行。谢谢大家的帮助!