Ответ 1
Firebase Simple Login - это абстракция, построенная поверх Пользовательского входа Firebase для удобства. При использовании аутентификации по электронной почте/паролю стоит иметь в виду, что это просто создает сопоставление между этим письмом и паролем и автоматически генерирует токены аутентификации для использования в ваших правилах безопасности.
В вашем конкретном случае, если все пользователи "admin" уже созданы, вы можете достичь поведения, которое вы ищете, с помощью правил безопасности. Например, если вы хотите разрешить доступ только для чтения/записи к вашему дереву данных Firebase для пользователей, прошедших проверку подлинности в этом списке, попробуйте написать правила безопасности для чтения/записи на верхнем уровне, которые требуют, чтобы пользователь находился в списке "admins":
{
".read" : "auth != null && root.child('admins').hasChild(auth.uid)",
".write" : "auth != null && root.child('admins').hasChild(auth.uid)"
}
Эти правила выше гарантируют, что пользователь аутентифицирован (через auth != null
) и требует, чтобы идентификатор аутентифицированного пользователя был в списке администраторов (root.child('admins').hasChild(auth.uid)
).
Последний шаг состоит в том, чтобы на самом деле сделать этих пользователей админами, написав их в поддереве admins
. Скажем, у вас есть пользователи 1, 4 и 7, чтобы добавить администраторов, обновите дерево данных, чтобы они отражали следующее:
{
...
"admins": {
"1": true,
"4": true,
"7": true
}
}
В результате этого, даже если другие пользователи могут генерировать новые сопоставления электронной почты и паролей с использованием Firebase Simple Login, эти сопоставления не будут влиять на ваше приложение, поскольку оно ограничено с помощью правил безопасности.