在Node,js中使用then()使用条件查询获取firestore文档的ID



我一直在尝试使用条件获取firestore文档ID。比如,如果一个文档有它的secret_code字段abcd12,获取文档的id。我一直试图这样做与Node.js,但它似乎没有工作。代码返回{Promise}

我想我对他们()还不够了解。

async function getIdFromSecretCode(secret_code) {
doc_id=0
await userCollection
.where("secret_code", "==", secret_code)
.get()
.then(function (querySnapshot) {
querySnapshot.forEach(function (doc) {
// doc.data() is never undefined for query doc snapshots
doc_id = doc.id;
// console.log(doc_id);
//console.log(doc.id, " => ", doc.data());
});
});
return doc_id;
}
var t= getIdFromSecretCode("ABCD")
console.log(t)

o/p为:'

PS E:socketio-unity-main> node mserver.js
Promise { <pending> }

'我想让它返回文档id,比如"1xccecefgrf">

getIdFromSecretCodeasync函数,因此它将始终返回一个承诺。你不能期望将来的结果现在可用,所以你需要接受承诺,也在getIdFromSecretCode的主调用中。

而且,这个承诺目前还没有解析成任何有用的东西,所以你必须稍微调整一下代码:

async function getIdFromSecretCode(secret_code) {
const snapshot = await userCollection
.where("secret_code", "==", secret_code)
.get();
return snapshot.docs[0]?.doc_id;
}
getIdFromSecretCode("ABCD").then(t => {
console.log(t);
});

相关内容

  • 没有找到相关文章

最新更新