我正在尝试在node.js中使用Firebase,但每次重新启动服务器时都会出现以下错误:
FIREBASE警告:提供的身份验证凭据无效。这通常表示您的FirebaseApp实例未正确初始化。确保您的apiKey和databaseURL与https://console.firebase.google.com/处为您的应用提供的值相匹配,或者如果您使用的是服务帐户,请确保它已获得授权访问指定的databaseURL且来自正确的项目。
以下是我的index.js:_
var express = require('express');
var router = express.Router();
var mongoose=require('mongoose');
var admin=mongoose.model('admin');
var firebase = require("firebase");
// Initialize the app with no authentication
firebase.initializeApp({
serviceAccount: {
projectId: "...",
clientEmail: "...",
privateKey: "-----BEGIN PRIVATE KEY-----...",
},
databaseURL: "..."
});
console.log("sfsaf")
// The app only has access to public data as defined in the Security Rules
var db = firebase.database();
var ref = db.ref("unitalk-b9145");
var messagesRef = ref.child("messages");
messagesRef.push({
name:"Rupali",
post:"Demo test of firebase"
});
虽然我已经检查了service-account和databaseURl的路径.. 请帮忙..
答案 0 :(得分:1)
您无法使用“frabase”软件包登录服务帐户。您需要使用“firabase-admin”包。您可以在此处找到详细信息(https://firebase.google.com/docs/database/admin/start)。
更新时间:2016年11月8日
转到:https://console.firebase.google.com
要使用Firebase管理SDK,您需要Firebase项目,与Firebase服务通信的服务帐户以及包含服务帐户凭据的配置文件。
示例代码;
var admin = require("firebase-admin");
var serviceAccount = require("path/to/serviceAccountKey.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://<DATABASE_NAME>.firebaseio.com"
});
答案 1 :(得分:0)
您正在使用require('firebase')模块,因此您需要以下内容:
var config = {
apiKey: " [your api key]",
authDomain: "[projectname].firebaseapp.com",
databaseURL: "https://[projectname].firebaseio.com/",
storageBucket: "[projectname].appspot.com",
messagingSenderId: "[message id]",
};
firebase.initializeApp(config);
如果要使用require(“firebase-admin”),则必须进行配置 serviceAccountKey.json(下载文件)文件...... 我能够成功连接firebase。
答案 2 :(得分:0)
Another method to solve the issue link
对于那些仍然面临这个问题的人,你可以试试这个方法,这与项目角色管理有关,根据里面的描述
答案 3 :(得分:0)
适合最近看过此书的任何人。更改项目后,Firebase功能出现问题。当我从admin.initializeApp()中删除密钥时,它消失了 显然,firebase函数现在知道可以使用项目凭据。就是这样
admin.initializeApp();