在我的Firebase Cloud Function文件中,我有以下的本地函数,它在返回一些属性之前执行了一个文档获取和更新操作。
async function getRandomDocLessThanOperator(seed) {
try {
const db = admin.firestore();
const snapshot = await db.collection("users").where("random", "<=", seed)
.limit(1)
.get();
if (snapshot.empty) {
return null; // 调用者然后尝试大于操作符
}
const doc = snapshot.docs[0];
doc.ref.update({"random": seed}); // 使用新的种子更新
return doc.get("uid");
} catch (error) {
throw new Error(error);
}
}
这个函数工作正常,但我担心在返回之前尝试异步更新文档。然而,在测试中,文档从未没有更新过。但是,这个函数在更新完成之前是否有可能超时?
无论如何,为了解决这个问题,我尝试使用await来等待更新:
const doc = snapshot.docs[0];
await doc.ref.update({"random": seed});
return doc.get("uid");
然而,当我这样做时,函数返回了预期的字符串,但没有更新文档。
await会阻止更新?Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号