【问题标题】:AngularFire realtime sync with additional dataAngularFire 与其他数据实时同步
【发布时间】:2015-01-23 13:18:10
【问题描述】:

我正在构建一种社交网络,用户可以在其中向其他用户发送请求。

当用户检查他的消息页面时加载的控制器:

$scope.requestedProfileTrips = Requests.getRequests(user.id).then(function (requests) {
    $scope.requestedProfileTrips = [];
    for (var i = 0; i < requests.length; i++) {
        // this function loads additional data depending on the request from firebase
        // from another database
        loadProfileTrips(requests[i]);
    }
  });

从 firebase 获取请求的服务:

getRequests: function(userId){
      // get requests
      var sync = $firebase(ref.child("requests").child(userId));
      var requestObject = sync.$asArray();
      // add requests to object
      return requestObject;
    }

请求对象包括userId、messageId等。在控制器的 then 函数中,我从另一个数据库中获取了 userId。这应该实时更新。

如果我这样做:

$scope.requestedProfileTrips = Requests.getRequests(user.id);

实时更新有效!但我只得到了用户 ID 和消息 ID。是否可以从存储用户名等的其他数据库实时获取数据?那么每次从firebase添加请求,都会触发getRequests的then函数中的内容?

【问题讨论】:

    标签: angularjs firebase angularfire


    【解决方案1】:

    Firebase 在实时同步方面表现出色,但据我所知,除此之外,还没有提供相同功能的现成数据库。

    但是,当您的 firebase 数据集/事件得到更新/触发时,您可以采用混合方法,例如从传统 SQL 或 NoSQL 数据库手动获取数据。这样您就可以同时使用 firebase 和传统数据库的实时同步。

    或者如果您需要将实时同步与传统数据库集成,那么建议您查看套接字。最好是 sockets.io 可以让你快速上手。

    【讨论】:

    • 感谢您的回答。你的第二点正是我所需要的。每次更新来自 firebase 的“请求”时,我都需要从外部数据库中获取数据。我怎么能在代码中做到这一点?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多