как добавить новую пару «ключ-значение» для существующего потомка в firebase - PullRequest
0 голосов
/ 27 мая 2019

Я подключил свое приложение для Android к базе данных и включил аутентификацию по электронной почте и паролю.Моя текущая база данных выглядит так:

current structure of database

Теперь я хочу добавить дополнительное поле (ключ: «число») для всех моих пользователей, чтобы моя итоговая база данных выглядела следующим образом:

final structure of database

поэтому, пожалуйста, скажите мне, как я могу это сделать?

Еще одна важная вещь - я написал код так, чтобы я сначала аутентифицировал их, если их регистрацияПосле этого я перевожу пользователя в новую активность, где после ввода ключа он вводит этот «ключ». Я должен добавить его в узел пользователя, как показано на втором рисунке.

Итак, скажите, пожалуйста, как это сделать?

1 Ответ

0 голосов
/ 27 мая 2019

Чтобы записать значение в базу данных Firebase Realtime, вы должны знать полный путь к этому значению. Так что в вашем случае это означает, что вам сначала нужно загрузить все данные из базы данных, чтобы иметь возможность определять динамические ключи (C76w3..., FjsZ... и т. Д.).

Примерно так:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
ref.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot snapshot: dataSnapshot.getChildren()) {
            snapshot.getRef().child("key").setValue("hisoka");
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        throw databaseError.toException();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...