如何使用Phonenumbers过滤Firebase DB的联系人列表

时间:2017-04-10 07:03:57

标签: android firebase firebase-realtime-database android-recyclerview

我有一个Firebase数据库,用作我正在开发的Android应用程序的后端。我的应用用户将其手机号码视为其存储在Firebase数据库中的ID。在应用程序(手机通讯录)中搜索用户时,它应仅显示使用此应用程序的联系人(即已在Firebase数据库中注册/可用的电话号码)。

尝试搜索并找到类似的[Android application with phone book synchronization?,但没有用。

感谢帮助

1 个答案:

答案 0 :(得分:0)

使用电话号码将所有联系人存储在HashMap中。作为键和名称作为值。我在这里创建

HashMap<String, String> phoneContacts = new HashMap<>();

现在调用此方法

void getFirebaseContacts(){

    databaseReference.child("ProfileData").addListenerForSingleValueEvent(new ValueEventListener() { //all users profile data

        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            Map value = (Map) dataSnapshot.getValue();
            if (value != null) {
                Iterator myVeryOwnIterator = value.keySet().iterator();
                while (myVeryOwnIterator.hasNext()) {
                    String Mobile = (String) myVeryOwnIterator.next();
                    if (Mobile != null && phoneContacts.containsKey(Mobile)) {
                        //Mobile and it's associated details will be stored in local database and displayed to user..
                        Map userData = (Map) value.get(Mobile);
                    }
                }
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
}