仅显示通过数据库值在应用程序中创建了帐户的联系人

你好,我有一个问题已经尝试了很长时间,但是没有成功。

我正在创建一个whatsapp风格的APP。因此,我希望它显示在“用户片段”中,该联系人保存在用户的手机联系人列表中。为此,我在数据库( phoneNumberWithoutCountryCode )中创建了一个引用,该引用将获取每个用户的手机号码,然后将其与联系人列表进行比较。

我提供的代码显示了所有注册用户,这是我想更改的内容。

由于目前缺乏足够的知识,我坚持这样做。

感谢您的帮助。

我的Firebase数据库:

  • 用户是存储每个用户的所有个人信息的行。
  • 然后是代表每个用户的用户ID 的行。
  • 然后是用户信息(很明显,但是我没有输入它,因为我认为它不重要)。
  • 名称是应在“用户片段”中显示的用户名。这与联系人列表中联系人的姓名不同。
  • phoneNumberWithoutCountryCode 是您首次使用手机号码登录时从EditText获得的非国家/地区代码手机号码。
  • uid 是用户ID。

    {
      "Users" : {
        "Bakpv8gs6keE95nFrRz4jnXOqka2" : {
          "name" : "User 1","phoneNumberWithoutCountryCode" : "123789456","uid" : "Bakpv8gs6keE95nFrRz4jnXOqka2"
        },"ET2PD26FpweYHIdPYtdlF1KDQEZ2" : {
          "name" : "User 2","phoneNumberWithoutCountryCode" : "987654321","uid" : "ET2PD26FpweYHIdPYtdlF1KDQEZ2"
        },"JGqx9sZ6nZoamaQmpruuxowvsps1" : {
          "name" : "User 3","phoneNumberWithoutCountryCode" : "123456789","uid" : "JGqx9sZ6nZoamaQmpruuxowvsps1"
        }
      }
    }

这是我的用户片段中需要更改的代码:

private void getallUsers() {
    //get current user
    final FirebaseUser fUser = FirebaseAuth.getInstance().getcurrentUser();
    //get path of database named ""Users" containing users info
    DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Users");
    //get all data from path
    ref.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull Datasnapshot datasnapshot) {
            userList.clear();
            for (Datasnapshot ds:datasnapshot.getchildren()){
                ModelUser modelUser = ds.getvalue(ModelUser.class);

                //get all users except currently signed in user
                if (!modelUser.getUid().equals(fUser.getUid())){
                    userList.add(modelUser);
                }

                //adapter
                adapterUsers = new AdapterUsers(getactivity(),userList);
                //set adapter to recycler view
                recyclerView.setadapter(adapterUsers);
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });
}

用户片段如下: Screenshot

seritwitch 回答:仅显示通过数据库值在应用程序中创建了帐户的联系人

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2755337.html

大家都在问