gpt4 book ai didi

javascript - 在 JavaScript 函数中执行 Firestore 查询

转载 作者:行者123 更新时间:2023-11-30 11:04:33 25 4
gpt4 key购买 nike

我想在 JavaScript 函数中执行 Firestore 查询,但我在使用 promise 时遇到了一些困难。

假设我想从用户那里获取文档 ID。所以我创建了这个 JavaScript 函数:

function getUid(email) {
db.collection("users").where("email", "==", email)
.get()
.then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
return doc.id;
});
})
.catch(function(error) {
return error;
});
}

现在,当我调用函数 res.send(getUid("user@example.com")) 时,它返回 undefined

等待 Firestore 查询完成的正确语法是什么?

最佳答案

get() 是一个异步函数,所以你需要把它包装成一个async 函数。此外,您不会从 getUid 函数返回任何内容 - 您只是在 forEach 参数中返回。如果你想从快照中获取所有的id,你可以使用map函数。

async function getUids(email) {
const db = admin.firestore();
const querySnapshot = await db.collection("users").where("email", "==", email).get();
const uids = querySnapshot.docs.map((doc) => { return doc.id });
return uids;
}

exports.yourFunction = functions.http.onRequest(async (req, res) => {
const email = // ...
res.send(await getUids(email));
});

关于javascript - 在 JavaScript 函数中执行 Firestore 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56199780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com