为了从firestore获取数据,我查询了一个文档并将该数据转换为变量。现在,我需要在代码的其他部分使用该变量。 当我使用该变量时,它不会获得任何数据。如何解决这些错误。
var d1;
var getdata = respond.get()
.then(doc =>{
if(!doc.exists){
console.log('No such document');
}else{
console.log('Document data:', doc.data());
d1 = doc.data();// In d1 I am not getting the data of that document
}
}).catch(err => {
console.log('Error getting documnet', err);
});
在for循环中,我使用的是d1变量。但它没有执行这些for循环
for(var k in d1){
var p = d1[k].PhoneNumber;
let rph = respond.where(receiverph ,"==", p)
.set({
Status : status
});
let payload = {
notification : {
title: "Message",
body: msg,
sound:"default",
}
};
console.log(payload);
return admin.messaging().sendToDevice(token,payload).then((response) =>{
console.log(token);
console.log("Successfully sen notification");
}).catch(function(error){
console.warn("Error sending notification",error);
});
}
});
在d1中,数据是
{ Invite2: { PhoneNumber: 917893659558, Amount: 33 },
Invite1: { PhoneNumber: 917799266509, Amount: 33 },
Invite3: { Amount: 33, PhoneNumber: 918639146409 }
}
答案 0 :(得分:1)
使用Promisse.all
let promise = [];
let all = [];
for(var k in d1){
var p = d1[k].PhoneNumber;
let rph = respond.where(receiverph ,"==", p)
.set({ Status : status });
let payload = {
notification : {
title: "Message",
body: msg,
sound:"default",
}
};
console.log(payload);
return admin.messaging().sendToDevice(token,payload).then((response) =>{
console.log(token);
console.log("Successfully sen notification");
}).catch(function(error){
console.warn("Error sending notification",error);
});
}
promise.push(rhp);
});
Promise.all(promise).then((data)=>{
data.forEach(query => {
query.forEach(res=>{
all.push(res.data());
})
})
答案 1 :(得分:0)
当您获得包含import java.time.*;
import java.time.temporal.*;
class {
public static void main(String[] arguments) {
LocalDateTime now = LocalDateTime.now();
int Seconds = now.get(ChronoField.SECOND_OF_MINUTE);
do{
\\ My Code is Here
} while ( Seconds <= 00);
的文档时,必须从数据库中提取文档。因此,此操作是异步的,您必须等到收到文档后再迭代其数据。简而言之,它应该类似于以下内容:
.get
希望有所帮助。