2016-08-19 2 views
0

Я следовал этому руководство: https://firebase.google.com/docs/server/setupНевозможно создать firebase пользовательского маркера

я создал свой ключ и получил мой * .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); 
}); 

Однако при отправке запроса GET в/firebaseCustomToken? UID = 123456 Я получаю эту ошибку

[Error: error:0906D066:PEM routines:PEM_read_bio:bad end line] 

Я прочитал это может быть связано с форматированием секретного ключа, но как мог это так, как я не изменил файл, полученный с консоли firebase?

+0

И вы фактически изменили эту часть вправо ' .json'? –

ответ

0

PEM - это ключ к доступу к Firebase, который вы должны загрузить в файле .json. Это может быть неправильный путь к вашему .json-файлу.

Вероятно, вы столкнетесь с другой ошибкой, если исправить это. Firebase и сервер устанавливают соединение в сети. Когда вызывается createCustomToken(), токен генерируется и известен firebase через соединение с websocket. Вы отправляете токен клиенту, запрашивающему аутентификацию, в ответ на запрос клиента. Затем клиент регистрируется, вызывая .signInWithCustomToken (токен).

Вам также необходимо настроить и инициализировать firebase на стороне клиента. Ознакомьтесь с документацией в Интернете, iOS или Android.

Сообщите мне, если вы не можете заставить его работать, я могу опубликовать некоторые фрагменты кода завтра.

+0

Я просто уволил его сегодня вечером, ничего не изменил, и это сработало! Очень странно, может быть, что-то распространенное в конце битвы? - Спасибо за ответ, хотя –