A DatabaseReference является локальная ссылка (думаю: указатель) на место в вашей базе данных.
При запуске этого:
DatabaseReference rootReference = database.getReference();
Вы получаете ссылку на корень вашей базы данных:
/ <root>
От этого корня вы можете получить ссылки на дочерние узлы в базе данных:
DatabaseReference usersRef = rootReference.child("users");
usersRef
указывает на:
/ <root>
users
Вы можете даже указать полный путь при вызове child()
, чтобы получить указатель в любом месте базы данных/дерева:
DatabaseReference myProfilePicRef = rootRef.child("users/myuid/avatarURL");
И myProfilePicRef
будут ссылаться на этот URL
/ <root>
users
myuid
avatarURL: "https://www.gravatar.com/avatar/12d378e6a9788ab9c94bbafe242b82b4?s=48&d=identicon&r=PG"
Наконец чтобы перейти к коду в своем вопросе: вы можете указать путь, который хотите сослаться, когда вы вызываете get getReference
. Таким образом, это приведет к ссылке на те же самые местоположения, что и раньше:
DatabaseReference rootRef = database.getReference();
DatabaseReference usersRef = database.getReference("users");
DatabaseReference myProfilePicRefRef = database.getReference("users/myuid/avatarURL");
Одна база данных на одного пользователя на самом деле не очень хорошая конструкция. Вы можете ограничить данные, к которым пользователь имеет доступ, путем добавления идентификатора пользователя к каждой связанной записи, затем вы можете фильтровать –