我正在尝试使用云功能创建新帐户。 这是我的功能:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
const express = require('express');
const cors = require('cors')({origin: true});
admin.initializeApp(functions.config().firebase);
// Create the server
const app = express();
app.use((err, req, res, _next) => {
console.log('Error handler', err);
console.log(req);
if(err){
res.status(400).send({
message:'error',
message2:req,
message3:req.body
});
} else {
admin.auth().createUser({
email: "user@example.com", //change with post request data
password: "secretPassword", //change with post request data
})
.then(function(userRecord) {
console.log("Successfully created new user:", userRecord.uid);
})
.catch(function(error) {
console.log("Error creating new user:", error);
});
}
});
app.use(cors);
app.get('/', (req, res) => {
res.send(`Hello ${req}`);
});
exports.registeration = functions.https.onRequest(app);
现在我只是想测试。我在客户端使用请求库:
request.post(
'urloffunction',
{ json: { key: 'Testing testing' } },
function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body)
}
}
);
答案 0 :(得分:2)
如果您想使用Express应用程序处理来自Cloud Functions的HTTP请求,您必须在该应用程序中至少声明一条与传入请求匹配的路由。您的示例声明没有路由,这意味着任何请求都不会执行任何代码。
您可以在此处看到设置Express路线的官方示例:https://github.com/firebase/functions-samples/tree/master/authorized-https-endpoint/