Я отвечу на это в контексте сохранения всего в Firebase и готовности использовать другие продукты Firebase.Если вы хотите использовать Auth Admin SDK в общем, просто убедитесь, что вы делаете это с сервера, которым вы управляете (в отличие от компьютера пользователя).
В общем, вам обычно требуется еще одна служба Firebase длявзаимодействовать с Firebase Auth так, как вы хотите.Либо используйте облачные функции с административным SDK Node.js (который мне не нравится с помощью административного SDK в вашем критическом пути пользователя из осторожности), либо используйте что-то вроде базы данных Realtime, чтобы хранить отдельный список всех ваших пользователей и любых других.дополнительная информация, которую вы можете связать с ними.
Обычно я регистрирую своих зарегистрированных пользователей в База данных реального времени , с узлом с именем users
, а затем каждый пользователь, имеющий узел, просто назвал своего пользователяЯ бы.Итак, список пользователей с двумя пользователями, чьи идентификаторы uid_0 и uid_1, будет иметь такую структуру:
- users:
- uid_0: {name, avatar, & c}
- uid_1: {name, avatar, & c}
Ваш rules.json может выглядеть примерно так, чтобы пользователи могли только писать свои собственные данные пользователя, но все могли читатьэто (так что вы можете дать своим пользователям список пользователей):
{
"rules": {
// Bonus maps cannot be written to under normal circumstances.
"users": {
".write": "!data.exists()",
"$uid" {
".write": "auth != null && auth.uid == $uid",
".read": true // or more granular, like ensure your uid is in the target's friends list
}
}
}
}
Насколько поддерживает этот список.Вы можете использовать язык правил , чтобы пользователи могли только создавать / удалять свои собственные $ uid, или использовать Функции с триггерами аутентификации Firebase (и * 1029).* Realtime Database Admin SDK Я стараюсь свести к минимуму использование) для добавления / удаления записей в списке пользователей.
Надеюсь, это поможет!