我想创建一个Firebase云消息传递客户端。我想从用户那里获取id,项目ID,包名等,并编辑我的google-service.json文件。从textview用户可以更改信息,并可以使用他们的项目信息。有没有办法做到这一点?
感谢您的回复!
答案 0 :(得分:0)
您创建用户可配置客户端的愿望很不寻常。你必须有一些非常特殊的要求。我不认为你想要做的FCM客户端配置的类型。我会解释我的推理。
首先,google-services.json
文件在 build 时处理,而不是运行时间。它由Google Services Gradle Plugin解析,它在.../app/build/generated/res/google-services/{buildType}/values/values.xml
生成字符串资源的XML文件。
当启动使用Firebase的应用时,FirebaseInitProvider会使用这些字符串资源自行配置,并创建默认的FirebaseApp实例。默认FirebaseApp
由FirebaseMessaging.getInstance()使用。
一些Firebase API,FirebaseDatabase和FirebaseStorage是两个示例,提供接受getInstance()
参数的FirebaseApp
方法。对于这些,可以使用initializeApp()和FirebaseOptions.Builder创建自定义FirebaseApp
,以指定通常由google-services.json
提供的值。但是FirebaseMessaging没有getInstance()
接受FirebaseApp
参数,强制使用使用FirebaseApp
文件创建的默认google-services.json
。
答案 1 :(得分:0)
可以注册应用程序以接收来自多个项目的消息。默认情况下,将使用google-services.json文件中定义的项目,但您可以使用getToken方法请求另一个实例ID令牌并手动指定另一个发件人ID。
因此,如果用户定义了另一个发件人ID,则可以调用getToken
,并且应用程序将接收发送给最初生成的令牌和手动生成的令牌的消息。