Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 比较Firebase数据库与电话联系人列表_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Android 比较Firebase数据库与电话联系人列表

Android 比较Firebase数据库与电话联系人列表,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我正在开发一个android聊天应用程序。我试图将电话联系人列表与“用户”子项中的“电话”进行比较。我试图通过查询得到“phone”的键值,并将其与电话联系人列表进行比较,然后将其放入一个模型中,该模型可以从数据库中获取信息以用于聊天列表 这是我的密码 final DatabaseReference mUserDB = FirebaseDatabase.getInstance().getReference().child("Users"); Query query = m

我正在开发一个android聊天应用程序。我试图将电话联系人列表与“用户”子项中的“电话”进行比较。我试图通过查询得到“phone”的键值,并将其与电话联系人列表进行比较,然后将其放入一个模型中,该模型可以从数据库中获取信息以用于聊天列表

这是我的密码

final DatabaseReference mUserDB = FirebaseDatabase.getInstance().getReference().child("Users");
            Query query = mUserDB.orderByChild("phone").equalTo(mContact.getPhone());
            query.addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                    if (dataSnapshot.exists()) {
                        String phone = "",
                                name = "";

                        for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
                            dataSnapshot.getKey();

                            if (childSnapshot.child("phone").getValue() != null) {
                                phone = childSnapshot.child("phone").getValue().toString();
                            }
                            if (childSnapshot.child("username").getValue() != null) {
                                name = childSnapshot.child("username").getValue().toString();
                            }
                            UserObject mUser = new UserObject(childSnapshot.getKey(), name, phone);
                            userList.add(mUser);

                                for (UserObject mContactIterator : contactList) {
                                    if (mContactIterator.getPhone().equals(mUser.getPhone())) {

                                            mUsers.clear();
                      //I think User user can not get the value 
                                            User user = childSnapshot.getValue(User.class);
                                            mUsers.add(user);
                                            final FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
                                            if (!user.getId().equals(firebaseUser.getUid())) {
                                                mUsers.add(user);
                                            }


                                        }
                                        userAdapter = new UserAdapter(getContext(), mUsers, false);
                                        recyclerView.setAdapter(userAdapter);


                                    }
                                }
                            }




                }

我认为在这里不能正常工作

if (!user.getId().equals(firebaseUser.getUid())) {
                                                mUsers.add(user);
                                            }
聊天列表需要显示联系人列表中的用户,但聊天列表为空
&我以前看到过这个相关的StackOverflow问题,但它对我不起作用

我已经解决了,我的代码正在工作,谢谢

final FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
final DatabaseReference mUserDB = FirebaseDatabase.getInstance().getReference().child("Users");  
  Query query = mUserDB.orderByChild("phone").equalTo(mContact.getPhone());
            query.addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                    if (dataSnapshot.exists()) {
                        String phone = "";

                        for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
                            dataSnapshot.getKey();

                            if (childSnapshot.child("phone").getValue() != null) {
                                phone = childSnapshot.child("phone").getValue().toString();
                            }


                            UserObject mUser = new UserObject(childSnapshot.getKey(), "", phone);
                            userList.add(mUser);



                                            mUsers.clear();
                      //I think User user can not get the value 
                                            User user = childSnapshot.getValue(User.class);
                                            mUsers.add(user);

                                            if (!user.getId().equals(firebaseUser.getUid())) {
                                                mUsers.add(user);
                                            }

请编辑您的问题,使其更具体,Firebase查询或电话联系人查询中有什么不起作用?您是否已请求设备联系人的权限?是,已授予权限,我正在我的用户片段中使用此代码。我必须获取所有联系人列表,并在联系人号码中添加国家代码,以与插入用于电话身份验证的firebase“phone”子号码进行比较