Firebase管理SDK未读取、写入或抛出错误(Node.js)
这个问题之前已经结束了,告诉我“更新问题,使其只关注一个问题”;我不知道问题是什么,如果我知道了,我就不会发布这个问题。无论如何,我将在这里澄清:Firebase管理SDK未读取、写入或抛出错误(Node.js),firebase,heroku,firebase-realtime-database,firebase-admin,Firebase,Heroku,Firebase Realtime Database,Firebase Admin,这个问题之前已经结束了,告诉我“更新问题,使其只关注一个问题”;我不知道问题是什么,如果我知道了,我就不会发布这个问题。无论如何,我将在这里澄清: 我以前只使用普通的Firebase模块(使用“npm I Firebase”导入的模块);以前一切都很好。这个问题与Firebase Admin SDK的身份验证有关(据我所知)。我不明白我应该如何在不透露GitHub上的服务帐户密钥JSON文件的情况下将此发送到Heroku构建 至于GOOGLE_应用程序_凭据路径,有没有一种方法不必在每次会话中
原件: 注意:这是我第一次使用Firebase管理SDK,所以我真的不确定我在做什么(尽管我已经使用了Firebase很多次) 最近,我决定回到我的一个旧的Discord机器人,并实际验证它对Firebase的请求(我以前没有这样做,因为我以前从未从服务器验证过,也不认为这是可能的)。我发现了Firebase Admin SDK,它听起来非常适合我的需要(为了记录在案,这个机器人被托管在Heroku上) 我找到了这本指南:,但有几件事我想不起来(请注意,这些都是纯粹的修辞,你不需要在回答中回答它们;我只是提供它们,以便你能理解我的思维过程):
- 当我设置GOOGLE_应用程序_凭据路径时,这不是只在本地机器上设置吗?我也可以尝试在服务器上运行export命令(在CLI中使用“heroku run”),但路径将指向服务器上不存在的文件(因为服务帐户密钥JSON文件在我的本地计算机上)。我需要在Heroku中设置环境变量吗
- “admin.credential.applicationDefault()”如何知道如何获取凭据
// Setup Firebase:
const admin = require('firebase-admin');
// Initialize Firebase:
admin.initializeApp({
credential: admin.credential.applicationDefault(),
databaseURL: "https://<APP>.firebaseio.com" // I removed the actual <APP> name to ask this question
});
let database = admin.database();
//安装Firebase:
const admin=require('firebase-admin');
//初始化Firebase:
admin.initializeApp({
凭据:admin.credential.applicationDefault(),
数据库URL:“https://.firebaseio.com“//我删除了实际名称以询问此问题
});
让database=admin.database();
比如database.ref(“test”).set(“helloworld!”)代码>不更改数据库中的数据,并且不会引发任何错误(我还尝试在末尾附加.then和.catch;仍然没有任何错误)。这在我切换到Firebase Admin SDK之前就已经起作用了(我以前只是使用“Firebase”模块,而不是现在使用的“Firebase Admin”模块)。读取数据也是如此
任何帮助都将不胜感激。您引用的“答案”仍然正确。似乎您主要是询问如何在Heroku上设置环境变量。我会将您的问题改写为更具体的问题,因为您遇到的问题并不是真正的管理SDK。@DougStevenson我已经知道如何设置环境变量;服务帐户密钥信息存储在JSON文件中。好的,我不清楚您的问题是什么。事实上,我在你的帖子中读到了两个问题——我建议把它归结为一个问题,解释什么东西没有按你期望的方式工作,或者你被困在什么地方。