Если вы хотите разделить информацию общего профиля и информацию личного профиля, добавьте еще один узел верхнего уровня, чтобы разделить их:

ужна помощь, чтобы подумать об этой проблеме, это моя схема Firebase.

Мне нужно просмотреть профиль, но публично, как это сделать лучше всего?

Итак, что вы думаете о схеме и как один пользователь общается?

Я думаю, что узел разговоров может находиться вне узла пользователя и при каждом обращении к разговору с каждым пользователем. Какой выбрать?

Ответы на вопрос(1)

Решение Вопроса

что большинство разработчиков Firebase Realtime Database рекомендуют. Некоторые из наиболее важных причин этого:

Firebase всегда будет читать целые узлы, поэтому вы не можете прочитать свойства пользователя, не прочитав также все его разговоры. Есть много сценариев, где это расточительно, например, когда вы хотите показать только список имен пользователей.Как только вы предоставляете пользователю доступ на чтение к узлу, он получает доступ ко всем данным в этом узле. Вы не можете забрать это разрешение на более низком уровне. В вашем случае это означает, что любой, кто может прочитать информацию в профиле пользователя, также может прочитать все его разговоры. Это может быть не то, что вы хотите.Вы можете попытаться обойти эту последнюю проблему, предоставив пользователю разрешение на чтение для конкретного свойства пользователей, поэтому/Users/$uid/nameи т. д. таким образом, они могут читать имена, но не разговоры. На отдельном пользовательском узле это действительно будет работать. Но с этой структурой вы больше не можете получить список профилей пользователей, так как у вас нет разрешения на чтение/Users.

Обычный способ моделирования того, чем вы поделились, состоит в том, чтобы разделить диалоги и профили пользователей на отдельные узлы верхнего уровня, каждый из которых связан с UID пользователя:

Users
  $uid
    name: "Matias Celiz"
    gender: "..."
Conversations
  $uid
    ...

Если вы хотите разделить информацию общего профиля и информацию личного профиля, добавьте еще один узел верхнего уровня, чтобы разделить их:

Users
  $uid
    name: "Matias Celiz"
    gender: "..."
Profiles
  $uid
    name: "Matias Celiz"
Conversations
  $uid
    ...

Ваш ответ на вопрос