Как получить пользователя Firebase по его идентификатору? - PullRequest
0 голосов
/ 02 мая 2019

В firebase вы можете получить доступ к данным текущего пользователя с помощью FirebaseAuth.getInstance().getCurrentUser()..., мне интересно, есть ли способ получить доступ к общедоступным данным других Аутентифицированных пользователей по их идентификатору или электронной почте.

Ответы [ 2 ]

2 голосов
/ 02 мая 2019

Доступ к пользовательским данным - опасная операция. Представьте себе приложение, которое позволяет вам изменять имя пользователя других людей.

Так что в клиентах вы не можете, если вы не скопируете пользовательские данные в RTD или Firestore ииспользуя правила, установите контроль конфиденциальности.

Я думаю, что вы ищете что-то вроде администратора SDK для аутентификации, который позволяет искать пользователей по электронной почте или UID.

Вы можете увидеть документы здесь

https://firebase.google.com/docs/auth/admin/manage-users

Если вы не хотите настраивать сервер, вы можете пройти весь путь Firebase;используя функции.Функции - это доверенная среда, подобная серверу, поэтому он может использовать admin sdk для аутентификации.Вы можете создать функцию onCall для того, чтобы делать все, что вы хотите.

Если вы хотите выполнять поиск только пользователей, рассмотрите возможность поиска версии пользовательских данных в любой базе данных, если вы ищете функцию типа администратора.тогда Functions onCall - это то, что вам нужно.

Возможно, вы захотите установить права администратора с помощью таможенных требований

https://firebase.google.com/docs/auth/admin/manage-users

exports.userCreationListener = functions.auth.user().onCreate(user => {
    const admins = {
        "first@admin.com": true
    };
    const email = user.email;
    if (!admins[email]) {
        return false;
    }
    const uid = user.uid;
    return admin.auth().setCustomUserClaims(uid, {superAdmin: true}).then(
        ()=>admin.database().ref(`users/${uid}`).set(true)).catch(error=>{
        console.log("SUPER_ADMIN_UPDATE_ERROR", error);
        return false;
    });
});
0 голосов
/ 02 мая 2019
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
    // The user's ID, unique to the Firebase project. Do NOT use this value to
    // authenticate with your backend server, if you have one. Use
    // FirebaseUser.getIdToken() instead.
    String uid = user.getUid();
}

Читать руководство https://firebase.google.com/docs/database/admin/retrieve-data

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...