Можете ли вы дождаться Firebase Cloud auth.user (). OnCreate функция? - PullRequest
0 голосов
/ 29 апреля 2020

Каждый раз, когда пользователь регистрируется, облачная функция создает новый пользовательский объект в базе данных в реальном времени. Проблема в том, что мне нужно получить доступ к пользовательским данным сразу после firebase.auth (). SignIn (). Then (), но onCreate вызывает ранее, чем оператор then ().

Есть ли какой-либо способ ожидать аутентификации. метод user (). onCreate в firebase.auth (). signIn ()?

Ответы [ 2 ]

2 голосов
/ 29 апреля 2020

Нет, это невозможно. Для облачной функции может быть только одно инициирующее событие, и его нельзя изменить.

Если у вас есть функция, которая создает некоторые данные в базе данных реального времени, и вы хотите, чтобы клиентское приложение ожидало этих данных чтобы быть созданным, все, что вам нужно сделать, это добавить прослушиватель в месте ожидаемых данных. Например, если данные создаются с использованием UID вновь созданного пользователя (скажем, /user/{uid}), все, что вам нужно сделать, это построить путь к этим данным так же, как функция сделает это, добавить слушателя и продолжайте пользовательский интерфейс вашего приложения после срабатывания прослушивателя. Вы, конечно, можете прослушивать данные, которых еще нет.

Это похоже на то, что я написал здесь в этом посте , за исключением того, что он использует Firestore вместо базы данных Realtime, но процедура такой же.

0 голосов
/ 29 апреля 2020

Да, добавьте это ваши Облачные функции Firebase Функции:

export const onNewUserAuth = functions.auth.user().onCreate((user) => {
    //To get user Auth Credentials add below code:
    const newUserUID = user.uid
    const newUserEmail = user.email

    //Add Data to Realtime Database this way
    return admin.database().ref(<your-path-here>).update({ "UID": newUserUID })

})

Теперь, если вы хотите получить данные сразу после создания пользователя и сохранения информации в базе данных. Используйте другой onCreate() для получения данных. Но помните, что это будет стоить вам другой вызов функции.

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