Как я могу создавать собственные претензии в onCreate? - PullRequest
2 голосов
/ 31 мая 2019

Я работаю с функциями Firebase и Firebase Cloud.Когда пользователь создается с помощью auth, я хочу установить пользовательские утверждения на основе их электронной почты.Я пытаюсь добиться этого, используя functions.auth.user().onCreate(....).

Однако при попытке добавить пользовательские утверждения в консоли появляется следующая ошибка: There is no user record corresponding to the provided identifier.

Я пробовал многочисленные примеры этого онлайн, например, в Документах Google .Я также пытался вручную создать пользователя перед добавлением пользовательских утверждений, например:

await auth().createUser({...user});
export const signupProcess = functions.auth.user().onCreate(async (user) => {

    // Check if user meets role criteria.
    const admin = (user.email && admins.has(user.email)? true: false);
    const customClaims = { admin };
    // Set custom user claims on this newly created user.
    return auth().setCustomUserClaims(user.uid, customClaims)
        .catch(error => {
            console.log(error);
        });
}); 

Я ожидаю получить доступ к администратору с правильными адресами электронной почты.Однако я получаю описанную ошибку при создании пользователя.

1 Ответ

1 голос
/ 02 июня 2019

Я попробовал простой код.

Я могу установить пользовательские заявки.

import * as functions from "firebase-functions";
import * as admin from "firebase-admin";

admin.initializeApp();

export const setCustomUserClaimsAdmin = functions.auth.user().onCreate(
  async (user: functions.auth.UserRecord): Promise<any> => {
    try {
      return admin.auth().setCustomUserClaims(user.uid, {
        ...user.customClaims,
        ...{ admin: true }
      });
    } catch (e) {
      console.error(e);
      return Promise.reject(e);
    }
  }
);

См. https://github.com/zkohi/firebase-web-samples/tree/microsoft-oauth/functions.

Не могли бы вы попробовать простой код или добавить код отладки?

...