大家好!👋 今天我想和大家分享如何通过外部服务器使用Firebase CLI将Android版本上传到Firebase App Distribution。在开始之前,我想说这些步骤也可以本地执行。主要原因是为了使服务账号与Firebase的安全连接保持隔离并独立,而不需要给客户端用户授予访问权限。(这只是您可以选择的另一个方案😊)
举个例子来说,假设我们有一个配置了 App 分发功能的 Firebase 项目,包含以下参数:
- App ID: 1:123456789300:android:12345abcdefghijk12abc9
- 测试人员小组: qa-testers
设置服务账号
要连接到Firebase,我们需要一个有效的服务账号。下面简要介绍一下步骤。
- 在 Google Cloud 控制台 页面上,选择您的项目并创建一个新的服务账号。
- 添加 Firebase App 分发管理员 角色。
- 生成一个私有的 JSON 密钥,并将密钥移动到您的构建环境可以访问的位置。请务必把此文件保存在一个安全的地方,因为它授予您在 Firebase 项目中的 App 分发的管理员访问权限。如果您是在 2019 年 9 月 20 日之后创建的应用,请跳过此步骤:在 Google API 控制台中启用 Firebase App 分发 API。在提示选择项目时,请选择与您的 Firebase 项目名称相同的项目。
将环境变量 GOOGLE_APPLICATION_CREDENTIALS
(指向服务账号密钥文件的位置)设置为指向您的服务账号密钥文件的位置。
# 导出环境变量 GOOGLE_APPLICATION_CREDENTIALS,指向 credentials 文件的绝对路径
export GOOGLE_APPLICATION_CREDENTIALS=/绝对路径/to/credentials/file.json
我们还需要添加一个用于 APP_ID 的环境变量值。
export APP_ID=1:123456789300:android:12345abcdefghijk12abc9 # 设置应用ID
使用 Node.js 搭建我们的服务器:
我们需要在服务器上安装Firebase CLI工具。为此,我们可以查看Firebase的文档,文档中提供了多种安装方式。我个人更喜欢通过NPM来安装。
安装 Firebase CLI 插件:https://firebase.google.com/docs/cli#install_the_firebase_cli
现在我们将创建一个项目,该项目将作为我们的服务器,我们将在其中提供一个端点用于上传APK文件。这次我将使用Node.js和Express,所以假设你已经对这些工具有一些基本了解;如果不熟悉也没关系,我们要做的事情相当简单明了,你可以选择其他你喜欢的语言,比如Go、Java、C#、Python等。
在你的 app.js
或 index.js
文件(根据你的命名)中,添加如下代码:
我不会详细解释代码,我只是想指出我们设置了一个名为 /upload
的端点,它将检查我们上传的文件是否为 .apk 文件,然后开始上传到 Firebase App 分发。
你可以注意到这个用于上传 APK 的功能最关键的部分是 Firebase CLI 命令,其结构如下(第 52 行)。
firebase appdistribution:distribute /Users/my-user/Android-Project/app/build/outputs/apk/debug/app-debug.apk --app 1:123456789300:android:12345abcdefghijk12abc9 --release-notes "从Firebase CLI上传的版本" --groups "测试团队"
运行该应用,使用以下命令:
命令在这里
node app.js
```运行应用程序`
现在你的应用将在端口 **3000** 运行。
最后,我们要使用 CURL 工具上传一个 APK 文件来测试服务器。
确保以下事项,
1. 为了生成APK而构建。
2. 确保您的apk文件路径正确。
curl -X POST \
-F "file=@/Users/my-user/Android项目/app/build/outputs/apk/debug/app-debug.apk" \
-F "group=qa测试人员" \
-F "releaseNotes=通过Firebase CLI上传的版本" \
https://your-domain:3000/upload
## [从Node.js应用上传Android APK到Firebase App 分发(第二部分:使用Firebase命令行界面(CLI)自动化上传)](https://medium.com/uploading-android-apks-to-firebase-app-distribution-from-a-node-js-application-part-2-8ded3ed63bdd?source=post_page-----5d9e30f7d694--------------------------------)
如果你喜欢我的创作并想要支持我,你可以请我喝杯咖啡哦 ☕️🥰 谢谢
[![](https://imgapi.imooc.com/670f244509b3c63a03000045.jpg)](https://ko-fi.com/devjorgecastro) 支持我喝杯咖啡 [![](https://imgapi.imooc.com/670f244609d1544a02990057.jpg)](https://www.buymeacoffee.com/jorgecastro) 请请我喝杯咖啡
请跟我来
* **Twitter:** [@devjcastro](https://twitter.com/devjcastro)
* **领英**:[devjcastro](https://www.linkedin.com/in/devjcastro)