【发布时间】:2017-09-08 11:09:46
【问题描述】:
我有一个带有 Firebase 实时数据库的应用。如果未连接,此应用程序应显示 ProgressBar。我怎样才能做到这一点?我用“.info/connected”试过了,但结果似乎很随机。我需要检查与在线数据库的连接,而不是离线数据库。 (基本上,我想禁用离线功能,并显示用户是否离线)
【问题讨论】:
标签: java android firebase firebase-realtime-database
我有一个带有 Firebase 实时数据库的应用。如果未连接,此应用程序应显示 ProgressBar。我怎样才能做到这一点?我用“.info/connected”试过了,但结果似乎很随机。我需要检查与在线数据库的连接,而不是离线数据库。 (基本上,我想禁用离线功能,并显示用户是否离线)
【问题讨论】:
标签: java android firebase firebase-realtime-database
var firebaseRef = new Firebase('http://INSTANCE.firebaseio.com');
firebaseRef.child('.info/connected').on('value', function(connectedSnap) {
if (connectedSnap.val() === true)
{
/* we're connected! */
}
else {
/* Give a custom Toast / Alert dialogue and exit the application */
}
});
您也可以添加此检查
public static boolean isNetworkAvailable(Context con) {
try {
ConnectivityManager cm = (ConnectivityManager) con
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
return true;
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
然后在您的 Activity/Fragment 中检查它
if (isNetworkAvailable)
{
//Do you task
}
else{
/*No internet so Give a custom Toast / Alert dialogue and exit the application */
}
更多信息请参考link
【讨论】:
isNetworkAvailable 条件,否则同时使用这两个条件if(connectedSnap.val() === true && isNetworkAvailable)