Firebase 设置
您必须为您的应用变体和平台指定 Firebase 配置信息。请按照以下说明创建您自己的 Firebase 项目并配置您的应用。
尽管 Flutter 新闻工具包已预先配置为与 Firebase 配合使用,但您也可以自定义代码库以利用项目中的其他服务。
我们建议您定义至少两个应用程序环境(也称为变体):开发和生产。每个环境定义了不同的深层链接、广告和身份验证配置,以及应用程序的不同入口点(例如 main_development.dart
)。
默认情况下,您的代码库应支持生产和开发变体。但是,当您从 mason 生成项目时,您可能已经创建了额外的变体。
在运行生成的应用程序之前,您必须配置 Firebase。
由于您的项目支持多个变体,您必须手动配置 Firebase。
转到 Firebase 控制台,使用您的 Google 帐户登录,并为您的项目支持的每个变体(例如开发和生产)创建一个单独的 Firebase 项目。
在每个 Firebase 项目中,使用相应的应用程序 ID 创建一个 Android 和 iOS 应用。确保应用程序 ID 包括正确的后缀(例如,开发变体的“dev”)。
从 Firebase 控制台的“项目设置”页面下载每个应用程序的 Google 服务文件。然后,转到生成的应用程序的源代码,并查找每个变体的以下 TODOs
Android
// Replace with google-services.json from the Firebase Console //
iOS
<!-- Replace with GoogleService-Info.plist from the Firebase Console -->
将此消息(对于应用程序的每个变体)替换为您刚刚从 Firebase 控制台下载的 google-services.json
和 GoogleServiceInfo.plist
文件的内容。
最后,仅对于 iOS,您必须打开 ios/Runner.xcodeproj/project.pbxproj
并将以下占位符替换为 GoogleServiceInfo.plist
文件中相应的 reversed_client_id
REVERSED_CLIENT_ID = "<PASTE-REVERSED-CLIENT-ID-HERE>";
搜索此占位符时,结果的数量取决于为您的项目配置的变体的数量。对于每个配置的变体,都有两个配置部分 (debug
和 release
)。
例如,如果您将 development
和 production
设置为项目的变体,您将找到以下配置部分
- Debug-development(在调试模式下构建开发变体)
- Release-development(在发布模式下构建开发变体)
- Debug-production(在调试模式下构建生产变体)
- Release-production(在发布模式下构建生产变体)
您的 ios/Runner.xcodeproj/project.pbxproj
应具有以下格式
/* Begin XCBuildConfiguration section */
# Release-production
0CMNTMSTYJKWAP508TXPJJN5 /* Release-production */ = {
...
buildSettings = {
...
REVERSED_CLIENT_ID = "<PASTE-REVERSED-CLIENT-ID-HERE>";
...
};
name = "Release-production";
};
...
# Debug-development
1ON144SZQH163C0TE8AP2QLM /* Debug-development */ = {
...
buildSettings = {
...
REVERSED_CLIENT_ID = "<PASTE-REVERSED-CLIENT-ID-HERE>";
...
};
name = "Debug-development";
};
...
# Release-development
53ZSJWL4HHR1DK5C45O2YEZ5 /* Release-development */ = {
...
buildSettings = {
...
REVERSED_CLIENT_ID = "<PASTE-REVERSED-CLIENT-ID-HERE>";
...
};
name = "Release-development";
};
...
# Debug-production
HLDEZL79XQNUTPT4UM4UEEL7 /* Debug-production */ = {
...
buildSettings = {
...
REVERSED_CLIENT_ID = "<PASTE-REVERSED-CLIENT-ID-HERE>";
...
};
name = "Debug-production";
};
...
/* End XCBuildConfiguration section */
如果您的开发变体的 GoogleServiceInfo.plist
如下所示
<plist version="1.0">
<dict>
...
<key>REVERSED_CLIENT_ID</key>
<string>com.googleusercontent.apps.737894073936-ccvknt0jpr1nk3uhftg14k8duirosg9t</string>
...
</dict>
</plist>
那么在 ios/Runner.xcodeproj/project.pbxproj
中,您必须替换 Debug-development 和 Release-development 配置部分内的 reversed_client_id
。
对于应用上其他现有变体(例如生产)的 GoogleServiceInfo.plist
,也必须在 project.pbxproj
文件的相应配置部分中重复此过程。