AngularFire实时与其他数据同步

时间:2014-11-25 13:43:59

标签: angularjs firebase angularfire

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

如果用户检查他的消息页面,则会加载控制器:

$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函数中的内容?

1 个答案:

答案 0 :(得分:1)

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

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

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