Firebase设备到设备通知教程中的“serviceAccountKey.json”是什么?

45
我成功地完成了Firebase Android Codelab,没有遇到太多问题,应用程序运行得很完美。现在我想添加设备到设备的通知。我找到了this tutorial:但有些事情对我来说不是很清楚。
  1. 在节点脚本中有一行代码:

var serviceAccount = require("path/to/serviceAccountKey.json");

"ServiceAccountKey.json"文件是什么?它只是google-services.json的另一个名称吗?如果不是,那是什么?

  1. 是否有一个简单的“点击”教程,介绍如何将节点服务器代码部署到Google环境中?

1
对于问题#2,在博客文章中有一个链接指向在Google Cloud平台上运行node.js的教程。除此之外:“要求我们推荐或寻找书籍、工具、软件库、教程或其他离线资源的问题,因为它们往往会吸引带有个人观点的答案和垃圾邮件,所以这些问题不适合在Stack Overflow上讨论。相反,请描述问题以及已经采取的解决方法。” - Frank van Puffelen
1
哦!大佬来了 :) 是的,我看过那个指南,只是想知道是否有更简单、更“直观”的教程,但这个已经足够了。一开始还在考虑是否应该问第二个问题,结果发现这是一个失礼之举,我的错;P至于第一个问题?你也回答了。你真是太棒了;p - Entman
一个帖子中包含两个问题的问题之一是问题 #2 不相关。整个帖子可能会被关闭。这会很遗憾,因为我刚刚回答了你的第一个问题。 :-) - Frank van Puffelen
5个回答

21
在您正在关注的博客文章中,我们使用Firebase Admin SDK在Google Cloud的App Engine Flexible环境上运行node.js脚本。服务帐号是一种授予信任进程访问Google Cloud平台和Firebase资源的方式。
您可以通过Google Cloud Console 创建服务帐号,然后下载相应的JSON文件。博客文章中的代码查找该文件并使用它来初始化Firebase Admin SDK。

18

感谢 Frank的回答,以下是一些额外的观察:

1. serviceAccountKey.json不是实际的文件名

来自Android客户端开发的经验,我认为这是一个固定的名称,就像在Android项目中的google-services.json一样。但实际上,它只是一个占位符名称。该文件使用唯一名称从Google Web UI生成,并且是在引用占位符的位置应用的文件。


2. 您只能获取该文件一次

通过文档,我想也许您可以使用现有的服务帐号获取该文件。然而,在查看了一些资料后,我尝试创建一个新的服务帐号,并从对话框中获得信息,复选框告诉我们只能在创建Service Account项目时获取那个.json文件一次。

文档讨论了创建服务帐号,但我没有看到太多关于获取那个.json文件的其他提及...所以直到看到这个对话框,它才变得模糊不清。

enter image description here


3. 添加新服务帐号的屏幕

那个管理UI有很多内容,包括从文档中引用的各种参考资料,如IAM设置、角色等。

冒昧地说一下(但可能会帮助其他人比我更快地找到这里)——这是我添加服务帐户并获取对话框以下载.json文件的视图。

enter image description here


14

请看这个评论

https://dev59.com/96Lia4cB1Zd3GeqPnbQq#49039675

  1. 简而言之,您可以通过在Firebase控制台的服务帐户选项卡中请求新的私钥来生成 serviceAccountKey.json 文件。

  2. 返回的私钥将是一个 .json 文件,一旦将其重命名为 serviceAccountKey.json,它就会成为您的serviceAccountKey.json 文件。

  3. path/to/ 是存储返回的 JSON 文件的目录,该目录必须在您的 Firebase 项目内。


2
很棒的答案!对于问题#3,假设我在项目资源的raw文件夹中存储了.JSON文件。我该如何从那里调用它?或者你是说我需要将.JSON文件放在Firebase的存储中并从那里调用它?谢谢。 - Travis Whitten
路径的基础似乎是从调用源文件所在的位置开始。 - user3015682

3

这可能有点令人困惑,但首先您需要从Google IAM生成一个服务帐号。创建服务帐号后,请右键单击三个点并选择“创建密钥”。它应提示您使用JSON选项。下载并将其存储在您的项目目录中。


0
如果您正在使用Firebase Admin SDK(用于Google Cloud Functions),请按照以下步骤操作:
1. 前往Firebase控制台并选择您的项目。 2. 导航至“项目设置 > 服务帐号”。 3. 在“Firebase Admin SDK”部分下,点击“生成新的私钥”按钮。这将下载一个包含您的私钥的JSON文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接