设置火力基础,然后设置火力基础声明

时间:2019-10-05 16:10:37

标签: javascript firebase promise firebase-authentication

因此,我使用Firebase身份验证和数据库来将新用户设置为数据库,如果设置成功,我想为该用户设置声明。 因此,这意味着我在承诺之内有一个承诺:

function setUser(user){
// no need for the database code before this, but userRef is set properly 
return userRef.set(user)
  .then(succ => {
    return firebase.firebase.auth().setCustomUserClaims(user.key, {admin: true})
    .then(() => {
      console.log("setting claims")
      return true;
    });
  })
  .catch(err => {
    return err
  })
}

调用功能:

app.post("/register_user",jsonParser,async (req, res) => {
 var user = req.body.user;
 let result =  await fireBase.setUser(user);
 res.send(result);

})

发生的事情是,我在数据库上获取了设置,但未设置声明,也看不到日志。我知道这是一个js问题,而不是firebase问题。我尝试了许多不同的方法(等待),但是没有用。

1 个答案:

答案 0 :(得分:0)

firebase.firebase似乎不正确。您需要使用admin对象,该对象可以使用const admin = require('firebase-admin');初始化。它不是firebase db sdk的一部分,而是admin的一部分。您还可以使用userRef.uid,因为这样可以为您提供用户文档的ID,如果需要的话,也可以使用user.key

return admin.auth().setCustomUserClaims(userRef.uid, {
                            admin: true
                        }).then(() => {
                            //on success
                        });