Как определить, является ли пользователь «анонимным» в облачной функции onCreate firebase? - PullRequest
0 голосов
/ 17 марта 2019

В моей облачной функции onCreate auth для обработчика firebase, как узнать, является ли пользователь анонимным, например, свойство isAnonymous, которое я получаю на клиенте в ответе onAuthStateChanged или onIdTokenChanged?

exports.createHandler = functions.auth.user().onCreate((user, context) => {
  let uid = user.uid,
      isAnonymous = ????;
});

1 Ответ

4 голосов
/ 17 марта 2019

Похоже, вы не можете получить эту информацию из Admin SDK.В SDK нет метода, позволяющего получить его.

Причина в том, что "isAnonymous является только клиентской конструкцией", как описано здесь: https://github.com/firebase/firebase-admin-node/issues/127.

isAnonymous является только конструкцией на стороне клиента.Если пользователь создан с signInAnonymously(), этот флаг установлен в true (только на стороне клиента).Например, вы можете использовать createUser и просто создать пользователя без какой-либо информации профиля (без адреса электронной почты, телефона, пароля и т. Д.).Будет ли это считаться анонимным?Как насчет того, чтобы создать пользователя с помощью только электронной почты?А как насчет пользовательского аутентификационного пользователя?Вы также можете отменить связь всех провайдеров с неанонимной учетной записью.Станет ли этот пользователь анонимным?

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

...