我正在建立一个社交网络,用户可以向其他用户发送请求。
当用户查看其消息页面时加载的控制器:
$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函数中的内容都会被触发吗?
发布于 2014-11-25 23:00:17
Firebase在实时同步方面很好,但据我所知,除此之外,还没有提供相同功能的现成数据库。
但是,您可以采用一种混合方法,比如当您的firebase数据集/事件获取更新/触发时,手动从传统的SQL或NoSQL数据库中获取数据。这样你既可以使用firebase的实时同步,也可以使用传统数据库。
或者,如果您需要将实时同步与传统数据库集成,则建议您查看套接字。最好是sockets.io能让你快速入门。
https://stackoverflow.com/questions/27128369
复制相似问题