具有一些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)。有想法吗?
答案 0 :(得分:0)
您可以使用try catch块包装async / await版本。 与调用addProfileToDB的代码相同(您也应该等待它)。 也许您会看到一些东西。
如果是触发addProfileToDB的云功能,您是否在firebase控制台上观看了日志?
答案 1 :(得分:0)
这最终是由于注销用户功能与addProfileToDB同时被调用而导致的。尽管addProfileToDB不需要登录的用户,但由于某种原因,中断导致该设置无法通过。我将注销用户功能移到以后触发,现在所有功能都按预期运行。谢谢大家的帮助!