【问题标题】:FIREBASE WARNING: Provided authentication credentials are invalidFIREBASE 警告:提供的身份验证凭据无效
【发布时间】:2016-11-07 10:27:52
【问题描述】:

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

【问题讨论】:

  • 我收到类似的消息:FIREBASE 警告:为名为“[DEFAULT]”的应用提供的身份验证凭据无效。这通常表明您的应用程序未正确初始化。确保提供给 initializeApp() 的“credential”属性被授权访问指定的“databaseURL”并且来自正确的项目。

标签: node.js firebase


【解决方案1】:

您不能使用使用“firabase”包的服务帐户登录。您需要为此使用“firabase-admin”包。您可以在此处找到详细信息 (https://firebase.google.com/docs/database/admin/start)。

更新日期:2016 年 11 月 8 日

转到:https://console.firebase.google.com

要使用 Firebase Admin SDK,您需要一个 Firebase 项目、一个与 Firebase 服务通信的服务帐号,以及一个包含您的服务帐号凭据的配置文件。

  1. 导航到项目设置中的“服务帐户”选项卡 页面。
  2. 选择您的 Firebase 项目。如果您还没有,请单击 创建新项目按钮。如果您已经有一个现有的 与您的应用关联的 Google 项目,点击 Import Google Project 而是。
  3. 单击底部的生成新私钥按钮 “服务帐户”标签的 Firebase Admin SDK 部分。
  4. 单击按钮后,将生成一个包含您的服务的 JSON 文件 将下载帐户的凭据。你需要这个 在下一步中初始化 SDK。

示例代码;

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"
});

【讨论】:

  • @Halil-我已包含“firabase-admin”包并使用以下代码进行更新。 ** admin.initializeApp({ credential: admin.credential.cert({ projectId: "unitalk-b9145", clientEmail: "uni2-522@unitalk-b9145.iam.gserdviceaccount.com", privateKey: "----- BEGIN PRIVATE ---" }), databaseURL: "unitalk-b9145.firsebaseio.com" });**
  • 但是这样做我得到了错误-找不到模块'serviceAccountKey.json'......因为这不是一个节点模块所以我们怎么能要求......它是json中下载密钥的路径跨度>
  • 需要将下载的文件复制到项目目录中,而不是“service Account Key.json”并给出路径。
  • 我也做了同样的事情..即下载了放在我的路由文件夹中的文件并给出了路径..例如文件名是“abc.json”。所以,我保存在我的路由文件夹中并使用以下内容:-var serviceAccount = require("abc.json") ;
  • 这会生成FIREBASE WARNING: Provided authentication credentials for the app named "[DEFAULT]" are invalid.,文件中的凭据可用于使用firebase 模块。
【解决方案2】:

Another method to solve the issue link

还是有这个问题的朋友可以试试这个方法,根据里面的描述,这和项目角色管理有关

【讨论】:

  • 完成此操作后,您还可以按照here的指示禁用和重新启用云功能
【解决方案3】:

对于最近看到这个的任何人。更改项目后,我遇到了 Firebase 功能的问题。当我从 admin.initializeApp() 中删除密钥时它就消失了 显然,firebase 函数现在知道使用项目凭据。所以就这样;

admin.initializeApp();

【讨论】:

    【解决方案4】:

    你正在使用 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。

    【讨论】:

    • var firebase = require('firebase'); var serviceAccount = require("./serviceAccountKey.json"); FirebaseAdmin.initializeApp({ credential: FirebaseAdmin.credential.cert(serviceAccount), databaseURL: "nodewithfirebase.firebaseio.com" }); app.get('/', function (req, res){ FirebaseAdmin.database().ref('/users').set({ username: "test", email: "test@mail.com" }); res.send("firebase app"); });
    猜你喜欢
    • 1970-01-01
    • 2017-05-04
    • 1970-01-01
    • 1970-01-01
    • 2020-04-20
    • 2018-11-28
    • 2020-07-22
    • 2021-11-29
    • 2019-04-26
    相关资源
    最近更新 更多