我正在使用 firebase 连接 connection test如果用户已断开连接,则检测脚本会显示模式,但由于某种原因,当应用程序加载时,它会触发两种情况,并且即使已连接,也会显示已断开的模式。我做错了什么。
var firebaseRef = new Firebase(FIREBAE_URL);
firebaseRef.child('.info/connected').on('value', function(connectedSnap) {
if (connectedSnap.val() === true) {
console.log("connected");
} else {
console.log("not connected");
setTimeout(function(){
$ionicPopup.show({
title: 'Network is either down or poor wifi',
template: 'Either pay for some wifi or go to a cafe',
buttons: [{
text: '<b>ok</b>',
type: 'button-positive'
}]
});
}, 8000)
}
});
最佳答案
当您首次创建 Firebase 客户端时,它会开始建立与服务器的连接。这可能需要一些时间。在连接完全建立之前,客户端不会连接。它会触发 .info/connected
中的 false
值。
每当用户失去连接时显示模式对话框可能是一种糟糕的用户体验。移动设备上的网络连接经常会令人惊讶地下降,而 Firebase 可以轻松地保护用户免受短暂中断。显示模式对话框就像在他们面前尖叫“你离线了,我们都完了,你没有互联网”。很难说是一次愉快的经历。
.info/connected
的一个更典型的用法是显示一个不太显眼的指示器,例如一个小状态图标。或者,如果用户离线一段时间,您可以显示一个模式。
关于angularjs - 我的 firebase 连接测试触发已连接和已断开连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34997129/