Firestore DocumentSnapshot返回54个文档id,我把每个id放入一个数组,但现在数组打印出54个数组,每个数组的索引都在递增。
我已经尝试了函数闭包,但得到了相同的结果
var newArray=[];
this.afs.collection('users', ref => ref.where('machine', '==',true))
.get()
.subscribe((snapshot) => {
snapshot.forEach(doc => {
const dataNew = doc.id;
newArray.push(doc.id)
for (var i = 0; i < newArray.length; i++) {
console.log(newArray[i]);
}
});
});我希望数组为每个索引输出一次:
2JFH4NBvEIWB6B5gHuO5J3peI0h1
2JFH4NBvEIWB6B5gHuO5J3peI0h1
2vslBGmfMtUsTt7EZWTvBsqLTjg1
2JFH4NBvEIWB6B5gHuO5J3peI0h1
2vslBGmfMtUsTt7EZWTvBsqLTjg1
53UQPRDjHZZjyA6UsQvr8TbgY372
2JFH4NBvEIWB6B5gHuO5J3peI0h1
2vslBGmfMtUsTt7EZWTvBsqLTjg1
53UQPRDjHZZjyA6UsQvr8TbgY372
5IqWO1zlCAhTiFreUpUaejBqbNY2
2JFH4NBvEIWB6B5gHuO5J3peI0h1
2vslBGmfMtUsTt7EZWTvBsqLTjg1
53UQPRDjHZZjyA6UsQvr8TbgY372
5IqWO1zlCAhTiFreUpUaejBqbNY2
6V9R849TmBYQYiYbKgTiM1agVr92发布于 2019-07-31 03:14:52
你的代码:
>G29>
在第一次迭代中,这将为您提供:
在第二次迭代中:
在第三次迭代中:
由于您是一个接一个地运行这些程序,您会得到:
H139文档3 H240F241
要防止这种情况发生,请将内部循环移到外部迭代之外:
snapshot.forEach(doc => {
const dataNew = doc.id;
newArray.push(doc.id)
});
for (var i = 0; i < newArray.length; i++) {
console.log(newArray[i]);
}发布于 2019-07-31 03:15:02
snapshot.forEach方法将对结果的每一行进行循环。
这意味着快照中的第一个项目将对数组中的1个项目执行for循环,然后第二个项目将在数组中执行2个项目,第三个项目将执行3个项目,依此类推。
var newArray=[];
this.afs.collection('users', ref => ref.where('machine', '==',true))
.get()
.subscribe((snapshot) => {
snapshot.forEach(doc => {
const dataNew = doc.id;
newArray.push(doc.id)
});
for (var i = 0; i < newArray.length; i++) {
console.log(newArray[i]);
}
});https://stackoverflow.com/questions/57278510
复制相似问题