Android Firebase 检查连接状态?

Ian*_*kel 2 java android firebase firebase-realtime-database

我有一个带有 Firebase 实时数据库的应用程序。如果未连接,此应用应显示 ProgressBar。我怎样才能做到这一点?我用“.info/connected”试过了,但结果似乎很随机。我需要检查与在线数据库的连接,而不是离线数据库。(基本上,我想禁用离线功能,并显示用户是否离线)

Aks*_*iya 6

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 */
  }
});
Run Code Online (Sandbox Code Playgroud)

您还可以添加此检查

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;
    }
Run Code Online (Sandbox Code Playgroud)

然后在你的活动/片段中检查这个

if (isNetworkAvailable)
{
//Do you task
}
else{
/*No internet so  Give a custom Toast / Alert dialogue and exit the application */
}
Run Code Online (Sandbox Code Playgroud)

请参阅此链接以获取更多信息