J'essaie de créer une application qui sauvegarde ma liste de contacts dans la base de données Firebase. Je peux stocker tous les contacts dans la base de données, mais lorsque je sauvegarde de nouveaux numéros et que j'appuie à nouveau sur le bouton de synchronisation, cela repousse tous les contacts. J'ai la liste de mes contacts, maintenant je veux vérifier chaque contact s'il existe déjà dans la base de données Firebase ou non. S'il n'existe pas, il doit être inséré.
public void SyncNow(View view) {
final DatabaseReference root = FirebaseDatabase.getInstance().getReference();
for (i=0; i<storeContacts.size(); i++){
UserContact contact = storeContacts.get(i);
final String number = contact.getContactNumber();
Query query = root.child("contactList").orderByChild("contactNumber").equalTo(number);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()){
//do nothing
}else {
String key = root.push().getKey();
root.child("ContactList").child(key).setValue(contact);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
Ce code ajoute seulement le dernier contact de mon UserContact ArrayList pour la taille de l'ArrayList. J'ai 108 contacts et il pousse le dernier contact 108 fois. Quelqu'un peut m'aider.