FIREBASE WARNING:提供的身份验证凭据无效

时间:2016-11-07 10:27:53

标签: node.js firebase

我正在尝试在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的路径.. 请帮忙..

4 个答案:

答案 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服务通信的服务帐户以及包含服务帐户凭据的配置文件。

  1. 导航到项目设置中的“服务帐户”选项卡 页。
  2. 选择您的Firebase项目。如果您还没有,请单击 “创建新项目”按钮。如果您已经存在 与您的应用相关联的Google项目,请点击导入Google Project 代替。
  3. 点击底部的Generate New Private Key按钮 “服务帐户”选项卡的“Firebase管理SDK”部分。
  4. 单击按钮后,将显示包含您的服务的JSON文件 帐户的凭据将被下载。你需要这个 在下一步中初始化SDK。
  5. 示例代码;

    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();