我有一个当前存在于 Firebase 中的用户,但是我已将 JS 代码写入
getUser
,但它无法运行。
const admin = require('firebase-admin');
module.exports = function(req, res) {
const UID = String(req.body.uid);
const YOB = String(req.body.YOB);
const gender = String(req.body.gender);
const salary = String(req.body.salary);
const hoursWorked = String(req.body.hoursWorked);
admin.auth().getUser(UID)
.then(userRecord => {
admin.database().ref('users/' + UID)
.update({
YOB: YOB,
gender: gender,
salary: salary,
hoursWorked: hoursWorked
},
() => {
res.send({
success: true
});
});
})
.catch((err) => {
res.status(422).send({
error: err
});
});
}
我使用 Postman 发送带有 JSON 数据的请求,如下所示:
{
"UID": "JjeSOpY159Pv0qonNNp200qu7wY2",
"YOB": "1985",
"gender": "Female",
"salary": "20.2",
"hoursWorked": "8"
}
火力基地:
我知道我与 firebase 有稳定的连接,因为我可以使用以下代码创建用户:
const admin = require('firebase-admin');
module.exports = function(req, res) {
admin.auth().createUser({})
.then(user => res.send(user))
.catch(err => res.status(422).send({ error: err}));
}
有谁知道为什么会发生该错误?
我在本地模拟器中运行 Firebase 后端时遇到了这个问题。我使用的命令是
firebase emulators:start --project <project-id>
。此命令在本地运行函数,但也在本地运行身份验证。本地身份验证导致我在 Firebase 控制台上看到的内容与本地可用的内容不匹配。
要解决此问题,我只需使用以下命令在本地运行函数:
firebase emulators:start --project <project-id> --only functions