我是Firebase Cloud Functions的初学者。我使用云函数的主要动机是身份验证。
index.js(在functions文件夹中)
var admin = require("firebase-admin");
const functions = require('firebase-functions');
const createuser = require('./funs/create_user');
var serviceAccount = require('./funs/serviceAccount.json');
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "//Given by Firebase"
});
exports.createuser = functions.https.onRequest(createuser);
create_user.js
const admin = require("firebase-admin");
module.exports = function (req,res) {
if(!req.body.phone)
{
return res.status(422).send({error: "Bad Input"});
}
const phone = String(req.body.phone).replace(/[^\d]/g,"");
admin.auth().createUser({ uid: phone })
.then((user) => res.send(user))
.catch((err)=>res.status(422).send({error:err}));
//return 1;
}
当我使用Postman调用函数时,我将数据传递给云函数:
{
"phone": "1212121212"
}
我得到的响应是“Bad Input”,正如if语句中所指定的。
移除if条件后,我得到以下响应
{
"error": {
"code": "auth/invalid-uid",
"message": "The uid must be a non-empty string with at most 128
characters."
}
}
2条答案
按热度按时间gtlvzcf81#
你的云函数代码是有效的,我已经成功地在Firebase项目中测试了它,使用Axios库,如下所示,在HTML页面中。
已正确创建用户。
问题可能来自您调用HTTPS云函数的方式。
jv4diomz2#
请更改类型=“文本”到类型=“JSON”在 Postman 当击中POST请求