如何在应用程序的根文件夹中编辑 google-service.json?
How can I edit google-service.json where in root folder from app?
我想创建一个 Firebase 云消息传递客户端。我想从用户那里获取 ID、项目 ID、包名称等并编辑我的 google-service.json 文件。从文本视图中,用户可以更改信息并可以与他们的项目信息一起使用。有什么办法吗?
感谢您的回复!
您创建用户可配置客户端的愿望很不寻常。你一定有一些非常特殊的要求。我不认为你想做的 FCM 客户端配置类型是可能的。我会解释我的推理。
首先,google-services.json
文件是在 build 时处理的,而不是 运行 时。它由 Google Services Gradle Plugin 解析,它在 .../app/build/generated/res/google-services/{buildType}/values/values.xml
.
生成一个 XML 字符串资源文件
当使用 Firebase 的应用程序启动时,FirebaseInitProvider configures itself using those string resources, and creates the default instance of FirebaseApp. The default FirebaseApp
is used by FirebaseMessaging.getInstance()。
一些 Firebase API,FirebaseDatabase and FirebaseStorage are two examples, provide getInstance()
methods that accept a FirebaseApp
parameter. For these, one can create a custom FirebaseApp
using initializeApp() and FirebaseOptions.Builder to specify the values that are normally provided by google-services.json
. But FirebaseMessaging 没有接受 FirebaseApp
参数的 getInstance()
,强制使用使用 [=10= 创建的默认 FirebaseApp
] 文件。
可以注册一个应用程序以接收来自多个项目的消息。默认情况下,将使用 google-services.json 文件中定义的项目,但是您可以使用 getToken 方法请求另一个实例 ID 令牌并手动指定另一个发件人 ID。
因此,如果用户定义了另一个发件人 ID,您随后可以调用 getToken
,应用程序将接收发送到最初生成的令牌和您手动生成的令牌的消息。
我想创建一个 Firebase 云消息传递客户端。我想从用户那里获取 ID、项目 ID、包名称等并编辑我的 google-service.json 文件。从文本视图中,用户可以更改信息并可以与他们的项目信息一起使用。有什么办法吗?
感谢您的回复!
您创建用户可配置客户端的愿望很不寻常。你一定有一些非常特殊的要求。我不认为你想做的 FCM 客户端配置类型是可能的。我会解释我的推理。
首先,google-services.json
文件是在 build 时处理的,而不是 运行 时。它由 Google Services Gradle Plugin 解析,它在 .../app/build/generated/res/google-services/{buildType}/values/values.xml
.
当使用 Firebase 的应用程序启动时,FirebaseInitProvider configures itself using those string resources, and creates the default instance of FirebaseApp. The default FirebaseApp
is used by FirebaseMessaging.getInstance()。
一些 Firebase API,FirebaseDatabase and FirebaseStorage are two examples, provide getInstance()
methods that accept a FirebaseApp
parameter. For these, one can create a custom FirebaseApp
using initializeApp() and FirebaseOptions.Builder to specify the values that are normally provided by google-services.json
. But FirebaseMessaging 没有接受 FirebaseApp
参数的 getInstance()
,强制使用使用 [=10= 创建的默认 FirebaseApp
] 文件。
可以注册一个应用程序以接收来自多个项目的消息。默认情况下,将使用 google-services.json 文件中定义的项目,但是您可以使用 getToken 方法请求另一个实例 ID 令牌并手动指定另一个发件人 ID。
因此,如果用户定义了另一个发件人 ID,您随后可以调用 getToken
,应用程序将接收发送到最初生成的令牌和您手动生成的令牌的消息。