База данных FireBase в реальном времени - PullRequest
0 голосов
/ 25 марта 2020

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

@Override
public void writeObject(IUser object) {
    User usrReal = (User) object ; // this userReal's reference same with parameter
    User usrCopy = new User(usrReal); // copy of it
    String usrId = usrCopy.getUserId();

    databaseReference.child("usrId").setValue(usrCopy);
    //databaseReference = this.databaseReference  = FirebaseDatabase.getInstance().getReference().child(path) is defined beginning of the class
}

, как вы видите в дочерний метод, если он называется «usrId», создает каталог usrId и добавляет в него всю необходимую информацию. Но я хочу создать каталог для каждого пользователя, поэтому я попытался передать переменную usrId в качестве параметра. Однако это не работает. Когда я отлаживаю, отладчик кода говорит, что локальный var usrId не может быть распознан. Мой вопрос: как я могу создать вложенную структуру в Firebase WRT? идентификатор пользователя.

1 Ответ

0 голосов
/ 25 марта 2020

Если userId - это идентификатор, сгенерированный аутентификацией firebase, тогда вы можете сделать:

String userId = user.getUid();
this.databaseReference  = FirebaseDatabase.getInstance().getReference().child("Users");
this.databaseReference.child(userId).child("name").setValue("peter");

Тогда у вас будет такая структура:

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