我有一个Flutter Web应用程序,为了访问数据库,我在
我查看了Github上Encrypted secrets的文档,它可以存储secrets。但似乎只能在yml文件中访问这些secrets。
我想知道如何在我的应用程序中使用此密钥,以便我的脚本成功运行并部署应用程序。
这是我的文件夹结构:
我想到解决这个问题的一种方法是使用一个
这是我的CI脚本:
secrets.dart
文件中硬编码了一个API密钥,这很好地实现了我的需求。我已将此文件添加到.gitignore
以防止它被推送到版本控制。但是,当使用GitHub Actions部署应用程序时,脚本会因为无法检测到secrets文件而失败。我查看了Github上Encrypted secrets的文档,它可以存储secrets。但似乎只能在yml文件中访问这些secrets。
我想知道如何在我的应用程序中使用此密钥,以便我的脚本成功运行并部署应用程序。
这是我的文件夹结构:
lib/
services/
database.dart /// this file uses the APIkey from secrets.dart
secrets.dart /// contains the APIkey
我想到解决这个问题的一种方法是使用一个
.env
文件,但我不太熟悉如何通过CI脚本将密钥添加到.env
文件中。我相信这也可以解决我的问题。这是我的CI脚本:
# This file was auto-generated by the Firebase CLI
# https://github.com/firebase/firebase-tools
name: Deploy to Firebase Hosting on merge
"on":
push:
branches:
- master
jobs:
build_and_deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
with:
java-version: "12.x"
- uses: subosito/flutter-action@v1
with:
channel: "master"
- run: flutter pub get
- run: flutter pub run build_runner build --delete-conflicting-outputs
- run: flutter build web --release
- uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: "${{ secrets.GITHUB_TOKEN }}"
firebaseServiceAccount: "${{ secrets.FIREBASE_SERVICE_ACCOUNT_VOCABHUB_34C7F }}"
channelId: live
projectId: vocabhub-34c7f
env:
FIREBASE_CLI_PREVIEWS: hostingchannels
run: echo $SECRETS_FILE_CONTENT | base64 -d > lib/utils/secrets.dart
它是在创建一个带有内容的文件吗? - Mahesh Jamdade