Добавление одинаковых значений имени ключа - PullRequest
0 голосов
/ 17 декабря 2018

Если я хочу добавить данные с тем же именем ключа, но разными значениями, как я могу это сделать, не заменяя существующие?Например, база данных выглядит следующим образом:

database
   |______user1
           |______sameKey: data1
           |______sameKey: data2

, если я использую: DatabaseRef.child(user1).child("sameKey").setValue(data);, она перезапишет sameKey новыми данными, но я хочу, чтобы это была просто другая запись данных.Как этого добиться?

1 Ответ

0 голосов
/ 18 декабря 2018

, если вы хотите отобразить другую запись с той же клавишей, просто оберните ее под нажимной клавишей, которая является буквенно-цифровым случайным значением

 mDatabaseRef.child(user1).push().child("sameKey").setValue(data);

Теперь, если вы просто хотите обновить текущуюданные, а не заменять их

вам нужно будет использовать карту и использовать updateChildren взгляните на этот пример

   Map<String,Object> mapData = new HashMap<>();
    mapData.put("sameKey",data);
    mDatabaseRef.child(user1).child(sameKey).updateChildren(mapData).addOnSuccessListener(new OnSuccessListener<Void>() {
            @Override
            public void onSuccess(Void aVoid) {
                // Write was successful!
                // ...
            }
        })
        .addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                // Write failed
                // ...
            }
        });

, этим вы будете заменять только обновленные данные, а не всеузел

посмотрите на Обновление или удаление данных здесь

https://firebase.google.com/docs/database/android/read-and-write?hl=en

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...