如果用户同时关闭wi-fi,3g,4g等,然后反向(没有互联网连接)。 Firebase数据库名称子连接:(是/否)
因此,当wi-fi,3g,4g等互联网连接关闭或丢失时,用户处于离线状态,因此找不到他。

记住以下两种情况:之前和之后。如果用户在其他用户搜索他之前已脱机,则该用户将不会显示在列表结果中;如果该用户在其他用户搜索他之后已脱机,则该用户将显示NO MORE AVAILABLE图标

请有人帮我解决这个问题。
先谢谢了。

最佳答案

尽管这已经晚了一年多,但还是要消除混乱。亚历克斯(Alex)的问题想实现一个实时聊天场景,其中每个用户都可以在终端或设备上查看每个人的在线状态。
    一个简单的解决方案是创建一个节点,所有用户将在其中注入各自的在线状态。例如

    //say your realtime database has the child `online_statuses`
    DatabaseReference online_status_all_users = FirebaseDatabase.getInstance().getReference().child("online_statuses");

    //on each user's device when connected they should indicate e.g. `linker` should tell everyone he's snooping around
    online_status_all_users.child("@linker").setValue("online");
    //also when he's not doing any snooping or if snooping goes bad he should also tell
    online_status_all_users.child("@linker").onDisconnect().setValue("offline")


因此,如果说mario的另一个用户从他的终端检查linker,他可以确保如果linker处于在线状态(例如,

    DatabaseReference online_status_all_users = FirebaseDatabase.getInstance().getReference().child("online_statuses");
    online_status_all_users.child("@linker").addValueEventListener(new ValueEventListener() {
      @Override
      public void onDataChange(DataSnapshot dataSnapshot) {
        String snooping_status = dataSnapshot.getValue(String.class);
        //mario should decide what to do with linker's snooping status here e.g.
         if(snooping_status.contentEquals("online")){
            //tell linker to stop doing sh*t
         }else{
            //tell linker to do a lot of sh****t
         }
      }

      @Override
      public void onCancelled(DatabaseError databaseError) {

      }
    });

10-07 14:12