Angularjs 循环firebase数据库对象并重复结果

Angularjs 循环firebase数据库对象并重复结果,angularjs,firebase,firebase-realtime-database,Angularjs,Firebase,Firebase Realtime Database,我正在重复存储在我的$firebaseArray对象中的对象 mycontroller: var projectquery = DatabaseRef.ref("projects").orderByKey().equalTo("-KUTPrs6ARZXjbjtNr7O"); $scope.projectslist = $firebaseArray(projectquery); 带有ng repeat的html视图: <tr ng-repeat="obj in projectslist"&

我正在重复存储在我的
$firebaseArray
对象中的对象

mycontroller

var projectquery = DatabaseRef.ref("projects").orderByKey().equalTo("-KUTPrs6ARZXjbjtNr7O");
$scope.projectslist = $firebaseArray(projectquery);
带有
ng repeat
的html视图:

<tr ng-repeat="obj in projectslist">
    <td>{{ obj.field1}}</td>
    <td>{{ obj.field2 }}</td>
    <td>{{ obj.field3 }}</td>
    <td>{{ obj.field4 }}</td>
</tr>
控制台的输出如下所示:

my list is : -KUTLAZENGlxtzCtEfaZ
my list is : -KUTLM8r_kmVSTaxzLW5
my list is : -KUTPrs6ARZXjbjtNr7O
问题: 如何将从forEach获得的上述项目密钥列表传递到第一个显示项目并按密钥过滤的函数中

有人能给出一个相关的答案并帮助我解决这个问题,而不参考其他与我的问题没有直接关系的答案吗

提前谢谢

编辑: my DatabaseRef引用此工厂,该工厂正在初始化firebase数据库:

app.factory("DatabaseRef", function() {
    return firebase.database();
});
更新: 实施后,“我的控制台”显示未定义的项目ID:
正如您所看到的,用户在其配置文件下有六个项目,但它们都是空的且未定义

更新2: 以下是Gourav编辑后的控制台输出:


而ng repeat的错误为:

我对DatabaseRef了解不多,但这可能会有所帮助

$scope.projectslist = [];
DatabaseRef.ref('/users/' + userId).orderByKey().once("value")
.then(function onSuccess(snapshot) {
    snapshot.child("savedprojects").forEach(function (childSnapshot) {
        var userprojects = childSnapshot.val();
        console.log("my list is :", userprojects);
        var projectquery = DatabaseRef.ref("projects").orderByKey().equalTo(userprojects);
        $scope.projectslist.push(($firebaseArray(projectquery))[0]);
    });
});

我正试图得到这份工作,但没有成功。有什么遗漏吗?实际上它显示了三个空行,它试图显示它们,但是值是空的。表中有三行分隔行,但缺少值。请尝试此操作。实际上,查询返回一个数组,可以是push first value,也可以是concat$scope.projectslist.push($firebaseArray(projectquery)[0]);我试过了,但没有成功,也许我没有正确地实现它。请考虑您建议的编辑,更新您在这方面的答案。谢天谢地,在我的ng repeat视图中,每个项目都有空行。但是现在,在实现了编辑之后,就不再有空行了,我发布了控制台输出,它为每个项目添加了未定义的内容。
$scope.projectslist = [];
DatabaseRef.ref('/users/' + userId).orderByKey().once("value")
.then(function onSuccess(snapshot) {
    snapshot.child("savedprojects").forEach(function (childSnapshot) {
        var userprojects = childSnapshot.val();
        console.log("my list is :", userprojects);
        var projectquery = DatabaseRef.ref("projects").orderByKey().equalTo(userprojects);
        $scope.projectslist.push(($firebaseArray(projectquery))[0]);
    });
});