Ionic firebase 一旦快照出现奇怪的错误
Ionic firebase once snapshot get weird bugs
我正在尝试使用设置代码通过 firebase 实时数据库设置一些东西,但在此之前,我需要使用一次快照来获取值并更新它。
当我有一个包含字符串的数组时,例如。)array[0] = "aaa"; array[1] = "bbb";
我应该能够获取每个字符串,但我只获取了数组的最后一个元素。
首先,该数组包含一个像 { name:"name", num:2, isEmpty:false }
这样的对象,所以我试图将其修复为仅包含字符串
使用 array.push("string");
但我仍然遇到同样的错误。
在使用 once('value',snapshot){...}
之前,我从数组中获取元素没有问题,但是当我使用 once()
时,我只获取数组的最后一个具有无效索引的元素。
array[0] = 'aaaa'; array[1] ='bbbb';
for(var i=0;i<array.length;i++){
alert(array[i]+' '+i);
//this works fine, alerts aaaa 0, bbbb 1
firebase.database().ref('/Something/').child(array[i]).child('size').once('value',snap=>{
alert(array[i]+' '+i);
//alerts bbbb 2, bbbb 2, I really don't get the issue, snap.val() works fine tho but only get bbbb's snap.val()
});
}
这是示例代码,我试图在 once()
中设置一些东西,但它只为 'bbbb' 路径的子级设置。它永远不会继续 'aaaa' 路径。
它必须提醒 aaaa 0,bbbb 1。但是为什么我得到 bbbb 2,bbbb 2?索引甚至无效,数组的长度为2。我真的不知道这个问题。有人可以帮我解决这个问题吗?
*我尽我所能,更改数组,使用 on()
而不是 once()
,在 once()
之后使用 then()
,等等。但是通过示例代码,一定没有问题吧???
我用 'async' 函数解决了这个问题,任何和我有同样问题的人,只要再做一个异步函数就可以在 once()
中做一些事情
我正在尝试使用设置代码通过 firebase 实时数据库设置一些东西,但在此之前,我需要使用一次快照来获取值并更新它。
当我有一个包含字符串的数组时,例如。)array[0] = "aaa"; array[1] = "bbb";
我应该能够获取每个字符串,但我只获取了数组的最后一个元素。
首先,该数组包含一个像 { name:"name", num:2, isEmpty:false }
这样的对象,所以我试图将其修复为仅包含字符串
使用 array.push("string");
但我仍然遇到同样的错误。
在使用 once('value',snapshot){...}
之前,我从数组中获取元素没有问题,但是当我使用 once()
时,我只获取数组的最后一个具有无效索引的元素。
array[0] = 'aaaa'; array[1] ='bbbb';
for(var i=0;i<array.length;i++){
alert(array[i]+' '+i);
//this works fine, alerts aaaa 0, bbbb 1
firebase.database().ref('/Something/').child(array[i]).child('size').once('value',snap=>{
alert(array[i]+' '+i);
//alerts bbbb 2, bbbb 2, I really don't get the issue, snap.val() works fine tho but only get bbbb's snap.val()
});
}
这是示例代码,我试图在 once()
中设置一些东西,但它只为 'bbbb' 路径的子级设置。它永远不会继续 'aaaa' 路径。
它必须提醒 aaaa 0,bbbb 1。但是为什么我得到 bbbb 2,bbbb 2?索引甚至无效,数组的长度为2。我真的不知道这个问题。有人可以帮我解决这个问题吗?
*我尽我所能,更改数组,使用 on()
而不是 once()
,在 once()
之后使用 then()
,等等。但是通过示例代码,一定没有问题吧???
我用 'async' 函数解决了这个问题,任何和我有同样问题的人,只要再做一个异步函数就可以在 once()
中做一些事情