【发布时间】:2018-04-23 07:42:49
【问题描述】:
我正在尝试使用 Firebase 管理员身份验证通过云功能通过电话号码获取用户。这是云函数(减去一些请求正文验证)。
module.exports = (req, res) => {
const phone = req.body.phone;
admin.auth().getUserByPhoneNumber(phone).then(userRecord => {
res.send({ user: userRecord });
})
.catch(getUserErr => {
res.status(422).send({ error: getUserErr });
});
};
电话符合 E.164 标准。我在响应中收到以下错误:
Error: could not handle the request
一些重要的信息。我从云函数中调用它。另外,我目前正在使用电话号码(通过不同的云功能)创建匿名用户,而不是使用电话登录提供商。
admin.auth().createUser({
phoneNumber: phone
})
我尝试打开手机身份验证提供程序(除了匿名登录提供程序),但这似乎无关紧要。
有人知道这是什么原因吗?文档对任何其他必要的设置都保持沉默。
【问题讨论】:
-
你能分享你的功能的完整实现吗?或者至少是调用上述方法的部分?
-
已编辑问题以包含完整功能。我认为如果该函数找不到记录,它会执行与 getUser 和 getUserByEmail 相同的操作并返回如下错误:{ "error": { "code": "auth/user-not-found", "message ": "没有与提供的标识符对应的用户记录。" } }
-
是的。这实际上不是 admin SDK 引发的错误。其他东西在这里失败了。请参阅 stackoverflow.com/questions/45600367/… 了解调试此问题的一些有用想法。