javascript - 将 Firebase 快照作为数组获取并设置为范围

标签 javascript angularjs firebase firebase-realtime-database angularjs-ng-repeat

我试图将 Firebase 快照的结果作为数组返回,以便我可以通过它们ng-repeat(默认情况下它返回对象)最后一行是我尝试设置数组中的对象并将它们设置为要重复的范围。但我似乎对为数组设置值的基本概念感到困惑:/任何帮助都会很棒。

const businessKey = '-KQ1hFH0qrvKSrymmn9d';
const rootRef = firebase.database().ref();
const discoverRef = rootRef.child('discover');
const businessRef = rootRef.child('businesses');


function getDiscoverBarContent(key, cb) {
    discoverRef.child(key).on('child_added', snap => {
        let businesRef = businessRef.child(snap.key);
        businesRef.once('value', cb);
    });
}

getDiscoverBarContent(businessKey, snap => {
    snap.forEach((child) => {
         var item = {};
         item._key = snap.val();
         array.push(item);
         /*$scope.discover = array*/
      })
});

最佳答案

尝试angularfire .

Angularfire 是 Firebase 的一个方便的助手,为您提供了一些用于构建 Angular 应用程序的有用工具。它包括3个主要服务。只需在每个 Controller 中注入(inject)您需要的即可。首先确保 firebase 已经初始化:

$firebaseAuth $firebaseObject $firebaseArray

以下是如何使用 $firebaseArray :

const businessKey = '-KQ1hFH0qrvKSrymmn9d';
const rootRef = firebase.database().ref();
const discoverRef = rootRef.child('discover');
const businessRef = rootRef.child('businesses');


function getDiscoverBarContent(key, cb) {
    let myArray = $firebaseArray(discoverRef.child(key));
    myArray.$loaded().then(() => { cb(a) });
}

getDiscoverBarContent(businessKey, data => {
    // ctrl.property = data
    // $scope.property = data;
});

如果我有任何语法错误,我很抱歉。我仍然使用经典的 JS 语法,无论它叫什么名字,都没有使用 es5/es6。

AngularFire 文档:https://github.com/firebase/angularfire/blob/master/docs/reference.md

不相关,但如果您需要以 Angular 轻松分页,请省去麻烦并使用以下库:https://github.com/deltaepsilon/firebase-paginator

关于javascript - 将 Firebase 快照作为数组获取并设置为范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42257317/

相关文章:

ios - SwiftUI - Firebase 与 Microsoft 进行身份验证

angular - 使用 Angular 和 Google Firebase 登录 Facebook 失败 - URL 被阻止

javascript - 如何在正确的范围内做出 Promise,以便它具有要查询的正确值并返回?

javascript - Mounted 上的 Vue 复选框在 Edge 中不起作用

javascript - 在 Bootstrap 框架中包含 jQuery 或 JavaScript

url - Angular $save 方法触发带有错误 url 的 post 请求

javascript - AngularJS - 单元测试时无法在脚本标记中找到指令模板

javascript - 需要一种在复杂情况下对 javascript 进行故障排除的好方法

javascript - 使用 JQuery 重新设置字段值

node.js - ExpressJS 中的 Yeoman