我有一个Firebase数据库,用作我正在开发的Android应用程序的后端。我的应用用户将其手机号码视为其存储在Firebase数据库中的ID。在应用程序(手机通讯录)中搜索用户时,它应仅显示使用此应用程序的联系人(即已在Firebase数据库中注册/可用的电话号码)。
尝试搜索并找到类似的[Android application with phone book synchronization?,但没有用。
感谢帮助
答案 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) {
}
});
}