【发布时间】:2021-04-28 06:41:04
【问题描述】:
我的 firebase 数据库有问题。我希望能够检索和比较 2 个不同集合的内容。在这种情况下,我想检查用户的答案是否与另一个集合中的答案键的答案相同。问题是我认为查询是异步完成的,所以我无法将值保存在 docRef.get() 函数之外。提前感谢您的帮助。
下面是我得到用户答案的地方:
firebase.auth().onAuthStateChanged((user) => {
if (user) {
var uid = user.uid;
document.getElementById("useruser").innerHTML = user.displayName;
var docRef = db.collection("Quiz").doc(user.displayName);
docRef.get().then(function(doc) {
if (doc.exists) {
console.log("Document data:", doc.data());
document.getElementById("question1_1").innerHTML = doc.data().Question; //Here I have my user's answer
document.getElementById("reponse1_1_1").innerHTML = doc.data().Reponse1;
var lisetRep = doc.data().Reponse1;
document.getElementById("reponse1_1_2").innerHTML = doc.data().Reponse2;
document.getElementById("reponse1_1_3").innerHTML = doc.data().Reponse3;
document.getElementById("reponse1_1_4").innerHTML = doc.data().Reponse4;
} else {
// doc.data() will be undefined in this case
console.log("No such document!");
}
}).catch(function(error) {
console.log("Error getting document:", error);
});
} else {
window.location.href="account-connexion.html";
}
});
下面是我得到正确答案的地方
var docRef = db.collection("ReponseJ").doc("ReponseJuste");
docRef.get().then(function(doc) {
if (doc.exists) {
console.log("Document data:", doc.data());
document.getElementById("question1_1").innerHTML = doc.data().Question; //Here I have the corrected answer
document.getElementById("reponse1_1_1").innerHTML = doc.data().Reponse1;
var lisetRep = doc.data().Reponse1;
document.getElementById("reponse1_1_2").innerHTML = doc.data().Reponse2;
document.getElementById("reponse1_1_3").innerHTML = doc.data().Reponse3;
document.getElementById("reponse1_1_4").innerHTML = doc.data().Reponse4;
} else {
// doc.data() will be undefined in this case
console.log("No such document!");
}
}).catch(function(error) {
console.log("Error getting document:", error);
});
【问题讨论】:
标签: javascript firebase google-cloud-firestore