在 Firebase 中遍历多个 children
Iterating through multiple children in Firebase
我正在开发一个 React 应用程序,并想将一组组织添加到状态树中。每个组织可以通过以下方式检索:
return firebase.database().ref('/organizations/' + org).once('value').then((snapshot) => {
return snapshot.val();
});
我目前正在尝试:
var orgs = user.organizations.map((org)=> {
return firebase.database().ref('/organizations/' + org).once('value').then((snapshot) => {
return snapshot.val();
});
});
this.setState({
organizations: orgs,
});
这是行不通的,因为承诺在添加到状态之前没有得到解决。有人有解决办法吗?
这些情况下的解决方案是将需要快照的代码 移到 回调中:
var ref = firebase.database().ref('/organizations/');
var promises = user.organizations.map(org => ref.child(org).once('value'));
Promise.all(promises).then(snapshots => {
// all snapshots have loaded
// TODO: call this.setState() with all snapshots.
})
让我们看看这样读起来是否更好:
var promises = user.organizations.map(org => {
return firebase.database().ref('/organizations/' + org).once('value')0;
});
Promise.all(promises).then(snapshots =>
var orgs = snapshots.map(snapshot => snapshot.val());
this.setState({
organizations: orgs,
})
})
我正在开发一个 React 应用程序,并想将一组组织添加到状态树中。每个组织可以通过以下方式检索:
return firebase.database().ref('/organizations/' + org).once('value').then((snapshot) => {
return snapshot.val();
});
我目前正在尝试:
var orgs = user.organizations.map((org)=> {
return firebase.database().ref('/organizations/' + org).once('value').then((snapshot) => {
return snapshot.val();
});
});
this.setState({
organizations: orgs,
});
这是行不通的,因为承诺在添加到状态之前没有得到解决。有人有解决办法吗?
这些情况下的解决方案是将需要快照的代码 移到 回调中:
var ref = firebase.database().ref('/organizations/');
var promises = user.organizations.map(org => ref.child(org).once('value'));
Promise.all(promises).then(snapshots => {
// all snapshots have loaded
// TODO: call this.setState() with all snapshots.
})
让我们看看这样读起来是否更好:
var promises = user.organizations.map(org => {
return firebase.database().ref('/organizations/' + org).once('value')0;
});
Promise.all(promises).then(snapshots =>
var orgs = snapshots.map(snapshot => snapshot.val());
this.setState({
organizations: orgs,
})
})