我注意到当我设置一个onDisconnect()
,在另一台计算机上点击我的应用程序,并关闭WIFI时,我的数据库没有更新; 但是,当我重新打开WIFI时它会更新.这让我很担心,因为我正在构建一个具有预期移动用户的应用程序,我想优雅地处理临时连接丢弃.
另一方面,/.info/connectcted立即知道断开连接和连接.
任何人都可以解释为什么会发生这种情况,并且一旦连接重新建立,是否有办法防止断开连接?
更新的代码:
var connectedRef, userRef;
connectedRef = new Firebase('https://{fb}/.info/connected');
userRef = new Firebase('https://{fb}/users/myUser');
connectedRef.on('value', function (snap) {
if (snap.val()) {
userRef.update({ online: true });
userRef.onDisconnect().update({ online: false }, function () {
console.log('Turn the Wi-Fi off after seeing this log.');
});
}
});
Run Code Online (Sandbox Code Playgroud)
结果:当我关闭Wi-Fi时,db 不会将在线设置为false,除非我等待大约1分钟.当我重新打开Wi-Fi时,数据库确实将在线设置为false.
为具有复合ID的对象设计RESTful资源的最佳方法是什么?例如,假设我有一个GET /people
用于获取人员记录列表的资源.一个人没有一个身份证; 相反,它由firstName,lastName和birthdate标识.我该如何设计资源以获得一个人?