angularjs - 循环遍历 firebase 数据库对象并 ng-repeat 结果

标签 angularjs firebase firebase-realtime-database

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

我的 Controller :

var projectquery = DatabaseRef.ref("projects").orderByKey().equalTo("-KUTPrs6ARZXjbjtNr7O");
$scope.projectslist = $firebaseArray(projectquery);

带有 ng-repeat 的 html View :

<tr ng-repeat="obj in projectslist">
    <td>{{ obj.field1}}</td>
    <td>{{ obj.field2 }}</td>
    <td>{{ obj.field3 }}</td>
    <td>{{ obj.field4 }}</td>
</tr>

这仅显示一个项目,因为我手动将项目 key 传递给 equalTo,从而过滤以显示一个项目。

另一方面,我通过在另一个数据库上执行 forEach 从以下函数获取一组项目 key :

var keyquery = 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 );
        });
    });

控制台的输出如下:

my list is : -KUTLAZENGlxtzCtEfaZ
my list is : -KUTLM8r_kmVSTaxzLW5
my list is : -KUTPrs6ARZXjbjtNr7O

问题:

如何将从 forEach 获得的上述项目键列表传递到第一个显示项目并按键过滤它们的函数?

有人可以给出相关答案并帮助我解决这个问题,而不引用与我的问题不直接相关的其他答案吗?

提前致谢!

编辑:

my DatabaseRef 引用了这个工厂,它正在初始化 firebase 数据库:

app.factory("DatabaseRef", function() {
    return firebase.database();
});

更新:

实现 Gourav's answer 后,我的控制台显示未定义的项目 ID: enter image description here
正如您所看到的,该用户的个人资料下有六个项目,但它们都是空的且未定义。

更新2:

这是 Gourav 编辑后的控制台输出:
enter image description here


以及 ng-repeat 的错误:
enter image description here

最佳答案

我对 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]);
    });
});

关于angularjs - 循环遍历 firebase 数据库对象并 ng-repeat 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40194282/

相关文章:

java - UI (Angularja) 和 Java WS 之间的安全性

javascript - 需要帮助从 Firebase 检索数据

swift - Firebase 存储下载响应错误

ios - Firebase 查询只返回新帖子?

ios - 如何完成图像到 Firebase 存储的上传,然后将 imageUrl 保存到 Firebase 数据库

javascript - 如何更新html表中的firebase数据库数据?

javascript - 为什么我的 Scroll 事件在这里被调用两次?

angularjs - 为什么Angular JS被命名为Angular JS?

javascript - 如何在 Angular 2中存储复选框的选中或未选中事件

firebase - 如何使 Firebase 推送通知在 Flutter 中收到通知时增加徽章计数?