火力地堡得到child_added环路
我使用的离子2.火力地堡得到child_added环路
我想java和数学的孩子在这个火力点照片他们的孩子都是0,1到每一个。
我做类似的东西
public getCourse(departmentId:any):any{
var semesterRef = firebase.database().ref('Courses/'+departmentId+'/SemA')
semesterRef.on('child_added', function(courseSnapshot) {
console.log(courseSnapshot.key);
});
,但它给了我只是在Java和数学的名字,而不是他们的孩子。我如何在循环中运行并获取它,并返回数组。
您可以使用快照的forEach
方法循环密钥的孩子:
public getCourse(departmentId:any):any{
var semesterRef = firebase.database().ref('Courses/'+departmentId+'/SemA')
semesterRef.on('child_added', function(courseSnapshot) {
console.log(courseSnapshot.key);
courseSnapshot.forEach(function(childSnapshot):boolean{
console.log(childSnapshot.key);
// ... etc.
return false; // to appease TypeScript
});
});
}
的火力地堡API不会返回数组,因为它转换数组对象与派生密钥从数组索引,但你可以枚举子和重新构建一个数组,如果这是你所需要的。
感谢您的快速回复。它显示我错误在这里“courseSnapshot.forEach(function(childSnapshot){ ”它说类型'(childSnapshot:DataSnapshot)=> void'的参数是不可分配给类型'(a:DataSnapshot)=>布尔'类型的参数。 类型'void'不能指定为类型'boolean' –
是的,TypeScript对于未指定返回值感到不满意,传递给'forEach'的函数可以返回'true'来短路迭代,只需返回'false '以安抚TypeScript。 – cartant
嘿,这正是我想要的,但是我坚持因为我在提供程序中,并不知道如何将它传递到我的课程页面中,我编辑我的帖子并添加了代码。 –
对于将来的问题,请不要张贴JSON和代码的图片。而是张贴实际的文字。对于JSON,您可以通过单击Firebase数据库控制台中的导出按钮轻松获取。将JSON和代码作为文本使其成为可搜索的,使我们能够轻松地使用它来测试您的实际数据/代码,并在我们的答案中使用它,并且通常只是一件好事。 –