#android #firebase-realtime-database
#Android #firebase-realtime-database
Вопрос:
Я использую fire base, и я хочу разделить администратора и пользователей, и я хочу, чтобы администратор был направлен на определенное действие, а пользователь — на другое. Как я могу это выполнить. Я пробовал использовать метод аутентификации, но он не работает.
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
progBar.setVisibility(View.GONE);
if (task.isSuccessful()) {
startActivity(new Intent(getApplicationContext(), Admin.class))
} else {
}
Комментарии:
1. Из вашего вопроса мне непонятно, как вы различаете пользователей с правами администратора и пользователей, не являющихся администраторами. Вам нужно будет выяснить, как это сделать, прежде чем вы сможете написать какой-либо эффективный код.
2. Вот что я выясняю, как различать администратора и не-администратора.
3. Аутентификация Firebase не имеет встроенной концепции пользователей-администраторов. Если вам это нужно, вам придется самостоятельно создать его поверх Firebase.
4. У меня сложилось впечатление, что в Firebase Auth обычно используются пользовательские утверждения для пометки пользователей с правами администратора. @FrankvanPuffelen
5. Да, обычно вы отмечаете администраторов пользовательским утверждением в их профиле, поскольку статус администратора является относительно стабильным состоянием (когда вы можете справиться с задержкой распространения). Другие членства в группах обычно обрабатываются путем их хранения в базе данных (Cloud Firestore или база данных реального времени).
Ответ №1:
Аутентификация Firebase не имеет встроенной концепции пользователей-администраторов. Если вам это нужно, вам придется самостоятельно создать его поверх Firebase.
Типичным способом сделать это было бы добавить пользовательское утверждение в профиль пользователя, когда этот пользователь является администратором. Вы можете сделать это с помощью Firebase Admin SDK с помощью чего-то такого простого, как:
admin.auth().setCustomUserClaims(uid, {admin: true})
Но обратите внимание, что этот Admin SDK предназначен только для использования в доверенных средах, таких как ваша машина разработки, сервер, которым вы управляете, или облачные функции. В противном случае любой может пометить себя как администратора вашего приложения с помощью приведенного выше кода.
Установив пользовательское утверждение, ваш клиент может прочитать это утверждение (для распространения среди клиентов требуется до часа) и показать правильный пользовательский интерфейс на основе этого.
Комментарии:
1. я хочу перенаправить администратора на определенную активность, где администратор будет добавлять или удалять данные других пользователей. и обычные пользователи должны быть направлены на другую активность.
2. Описанный выше подход позволит вам это сделать. Проверьте ссылку о чтении заявки на клиенте для примера кода.