Firebase 如何在angularFire 0.8中查找阵列相关数据
节点Firebase 如何在angularFire 0.8中查找阵列相关数据,firebase,angularfire,Firebase,Angularfire,节点 users - user_abc - albums - 123: true - 456: true albums - 123 - title: 'hello world' - 456 - title: 'this is a album title' 场景 从用户节点获取相册id,然后在相册中查找数据 代码 $firebase(FbRef.child('users/user_abc/albums/')).$asArray().$loaded().then(
users
- user_abc
- albums
- 123: true
- 456: true
albums
- 123
- title: 'hello world'
- 456
- title: 'this is a album title'
场景
从用户节点获取相册id,然后在相册中查找数据
代码
$firebase(FbRef.child('users/user_abc/albums/')).$asArray().$loaded().then(function(a) {
$scope.albums = $firebase(FbRef.child('albums/' + STUCK_HERE_!!!)).$asArray();
});
当我控制台a
时,它返回
0:
$id: '123'
etc...
1:
$id: '456'
etc....
etc....
所以我有一个未知的数组长度,如何将它们传递到stackd\u HERE\uu代码>
更新
我尝试了$asObject()
,它在承诺后返回密钥,但如何调用它.name()
不起作用
更新2
我从$asObject
获得了密钥,但是如何使用这些密钥查询其他节点
因此,您正试图根据用户的“首选项”获取一个AngularFireFirebaseArray
以及所有可用专辑的子集。我不确定你是否能轻易地使用角火力阵。你基本上是在尝试过滤孩子们,我认为这不是内置的功能。不过,你可以扩展它。代码在这里:使用FirebaseObject
怎么样?我得到了密钥,但不知道如何使用它们查询另一个节点。我记得我可以在0.5版本中使用name()
来完成。如果使用$toObject()
,则会得到FirebaseObject
。但是如果你在/albums
上这样做,你会得到所有的专辑,这听起来不像你想要的。如果这是您想要的,您只需获取所有相册并在ng repeat
中应用过滤器即可。这绝对更简单。我只想查询属于“user_abc”的相册。我上传了一张图片。您可以看到我从用户节点获得了相册密钥。但是如何使用它来查询albums节点呢?或者我必须使用纯firebase js来实现这一点?