Android:检查Firebase数据库中是否存在数据列表

时间:2018-03-17 07:40:30

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

我正在尝试制作和应用程序,它将我的联系人列表备份到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次。有人请帮忙。

2 个答案:

答案 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){

    }