我已遵循本指南:https://firebase.google.com/docs/server/setup
我创建了我的密钥并收到了我的* .json文件。我也有安装了所需的npm软件包的代码。
var http = require('http');
var httpdispatcher = require('httpdispatcher');
var firebase = require('firebase');
firebase.initializeApp({
serviceAccount: "<my-service-account>.json",
databaseURL: "https://<project-id>.firebaseio.com"
});
const PORT=8080;
httpdispatcher.onGet("/firebaseCustomToken", function(req, res) {
var uid = req.params.uid;
if (uid) {
var customToken = firebase.auth().createCustomToken(uid);
res.writeHead(200, {'Content-Type': 'application/json'});
res.end(JSON.stringify({'firebaseJWT' : customToken}));
} else {
res.writeHead(400, {'Content-Type': 'text/plain'});
res.end('No uid parameter specified');
}
});
function handleRequest(request, response){
try {
//log the request on console
console.log(request.url);
//Disptach
httpdispatcher.dispatch(request, response);
} catch(err) {
console.log(err);
}
}
//create a server
var server = http.createServer(handleRequest);
//start our server
server.listen(PORT, function(){
console.log("Server listening on: http://localhost:%s", PORT);
});
然而,当向/ firebaseCustomToken发送GET请求时?uid = 123456我收到此错误
[Error: error:0906D066:PEM routines:PEM_read_bio:bad end line]
我已经读过这可能与私钥的格式有关,但是我怎么能修改从firebase控制台收到的文件?
答案 0 :(得分:0)
PEM是访问Firebase的关键,您应该在.json文件中下载。它可能是.json文件的路径不正确。
如果你解决了这个问题,你可能会遇到另一个错误。 Firebase和服务器建立websocket连接。调用createCustomToken()时,将生成令牌并通过websocket连接告知firebase。您将令牌发送到请求身份验证的客户端以响应客户端请求。然后客户端通过调用.signInWithCustomToken(令牌)登录。
您还需要在客户端配置和初始化firebase。查看Web,iOS或Android文档。
如果您无法使用,请告诉我,我明天可以发布一些代码段。