firestore.collection("Something").where("User2", "==", "")
.get()
.then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
const docRef = firestore.collection("Something").doc(doc.id);
docRef.update({
User2: messageseqno,
})
})
.catch(error => {
console.log(error);
const docRef = firestore.collection("Something").doc();
var nullvalue = "";
docRef.update({
User1: messageseqno,
User2: nullvalue,
})
});
})
我需要它来像if-else语句一样执行。考虑到。那么,如果我能做些什么。
上面的代码显示了一个错误
“无法读取未定义的属性'catch'”
答案 0 :(得分:1)
更新:我将.catch放在then函数中。它应该在之后直接出现,为您的错字感到抱歉。
在.then之后使用.catch。 catch方法为我们提供了一个错误对象。
firestore.collection("Something").where("User", "==", input)
.get()
.then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
const docRef = firestore.collection("Something").doc(doc.id);
docRef.update({
//set of statements if .then is true
})
})
})
.catch(error => {
console.log(error);
// Do stuff when query fails
});
答案 1 :(得分:0)
您也可以在try-catch块中为此使用async和await语法
async function getRecords() {
try {
const records = await firestore.collection("Something").where("User2", "==", "")
.get();
//do stuff with records as an array
records.forEach(function(doc) {
const docRef = firestore.collection("Something").doc(doc.id);
docRef.update({
//set of statements if .then is true
})
}
}
catch(e) {
console.log("Error",e.message);
//handle your exceptions here
}
}