我正在建立一种社交网络,用户可以向其他用户发送请求。
如果用户检查他的消息页面,则会加载控制器:
$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
函数中的内容?
答案 0 :(得分:1)
Firebase在实时同步方面表现不错,但据我所知,除此之外没有现成的数据库提供相同的功能。
然而,当您的firebase数据集/事件获得更新/触发时,您可以采用混合方法,例如从传统SQL或NoSQL数据库手动获取数据。这样您就可以使用firebase的实时同步和传统数据库。
或者,如果您需要将实时同步与传统数据库集成,那么建议您查看套接字。最好是sockets.io可以让你快速入门。