Firebase云函数返回错误错误:没有与提供的标识符对应的用户记录

时间:2019-01-08 06:09:36

标签: javascript node.js firebase firebase-authentication google-cloud-firestore

我想在触发函数中设置CustomUserClaims,但随后出现此错误

enter image description here

这是我的代码:

   exports.onCreateCompaniesByUserFunction = 

  functions.firestore.document('/companiesByUser/{userId}').onWrite((change,  context) => {
        const  { userId } = context.params;

        const document = change.after.exists ? change.after.data() : null;

        console.log('document',document)
        let owner =  []
        let employee = []
         let editor = []

    Object.keys(document).map(key => {
      if (document[key] == 'affiliate' || document[key] == 'employee') {
        employee.push( key )
      } else if (document[key] == 'owner') {
        owner.push( key )
      } else if (document[key] == 'editor') {
        editor.push( key )
      }
    });


    console.log('owner',owner)
    console.log('employee',employee)
    console.log('editor',editor)
    console.log('before the claims 2',userId)
    return admin.auth().setCustomUserClaims(userId, {employee, owner, editor})
    .then(() => {

      console.log('claim set successfully!');
      return true;



    })
    .catch((error) => {
      console.log('in error',error);
    });

});

根据该UserId存在,但在日志中,这表示没有用户对应。

2 个答案:

答案 0 :(得分:1)

您确定使用的数据库配置正确吗?也许您忘了将连接从暂存更改为生产。您应该仔细检查数据库配置(通常在functions/index.js中):

admin.initializeApp({
  credential: YOUR_CREDENTIAL_FILE,
  databaseURL: 'YOUR_DATABSE_URL',
  ...
});

答案 1 :(得分:1)

尝试点击 Firebase 主屏幕右侧的“身份验证”。然后,点击“开始使用”。

启用您正在使用的所有登录方法。

这为我解决了问题。