我正在尝试制作和应用程序,它将我的联系人列表备份到firebase数据库。我可以将所有conntact都放到数据库中,但是当我保存新数字并再次点击同步时,它会再次推送所有联系人。我现在有我的联系人的ArrayList我想检查每个联系人是否存在于firebase中。如果不存在,它应该把它。
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="300dp"
android:gravity="center"
android:layout_height="300dp"
android:layout_centerInParent="true"
android:background="@drawable/rounded_edge">
</LinearLayout>
此代码仅添加了UserContact ArrayList的最后一个联系人,用于arraylist的大小。我有108次接触它推动最后一次接触108次。有人请帮忙。
答案 0 :(得分:1)
要解决此问题,您需要通过保存这些数字来对数据库结构进行一些更改,如下面的数据库结构所示:
Firebase-root
|
--- phoneNumbers
|
--- phoneNumberOne
| |
| --- //details
|
--- phoneNumberTwo
| |
| --- //details
|
--- phoneNumberThree
|
--- //details
现在只需检查一个号码即可。
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference phoneNumberToCheckRef = rootRef.child("phoneNumbers").child(phoneNumberToCheck");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(!dataSnapshot.exists()) {
//Add number
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
phoneNumberToCheckRef.addListenerForSingleValueEvent(valueEventListener);
答案 1 :(得分:0)
你用于每个循环然后我认为所有记录将添加没有firebase数据库..
for (UserContact contact:storeContacts){
}