因此,我使用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问题。我尝试了许多不同的方法(等待),但是没有用。
答案 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
});