繁体   English   中英

使用 FCM 在 Android 应用程序中接收来自多个发件人(Firebase 项目)的消息

Receive messages from multiple senders (Firebase projects) in Android app using FCM

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试使用这篇文章中的指针从多个 Firebase 项目(发件人)接收消息。 我已经使用适当的选项初始化了 FirebaseApp,并在每个发件人/项目上调用了getToken() 但这不起作用。 我收到的唯一 FCM 消息来自其 google-services.json 已包含在项目中的项目。 如果我在这里遗漏了什么,请告诉我。 谢谢。

            FirebaseApp.initializeApp(context);

            FirebaseOptions options1 = new FirebaseOptions.Builder()
                    .setApiKey("apiKey1")
                    .setApplicationId("appId1")
                    .setGcmSenderId("senderId1")
                    .setStorageBucket("bucket1")
                    .setDatabaseUrl("database1")
                    .build();
            FirebaseApp.initializeApp(context, options1, "project1");

            FirebaseOptions options2 = new FirebaseOptions.Builder()
                    .setApiKey("apikey2")
                    .setApplicationId("appId2")
                    .setGcmSenderId("sender2")
                    .setStorageBucket("bucket2")
                    .setDatabaseUrl("database2")
                    .build();
            FirebaseApp.initializeApp(context, options2, "project2");

            new AsyncTask<Void, Void, Void>() {
                @Override
                protected Void doInBackground(Void... params) {

                    try {
                        String token1 = FirebaseInstanceId.getInstance(FirebaseApp.getInstance("project1")).getToken("sender1", FirebaseMessaging.INSTANCE_ID_SCOPE);
                        String token2 = FirebaseInstanceId.getInstance(FirebaseApp.getInstance("project2")).getToken("sender2", FirebaseMessaging.INSTANCE_ID_SCOPE);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    return null;
                }

                @Override
                protected void onPostExecute(Void result) {

                }
            }.execute();

           FirebaseMessaging fcm = FirebaseMessaging.getInstance();                
1 个回复

对我有用的方式与您所做的有点相似,但略有不同:我保留了从工厂方法FirebaseApp.initializeApp返回的FirebaseApp引用,然后将变量传递给FirebaseInstanceId.getInstance() 另外,我不认为第一次调用 initialize app FirebaseApp.initializeApp(context)是有用的,因为在所有情况下你都不需要它。

我的代码版本是:

            //FirebaseApp.initializeApp(context);

            FirebaseOptions options1 = new FirebaseOptions.Builder()
                    .setApiKey("apiKey1")
                    .setApplicationId("appId1")
                    .setGcmSenderId("senderId1")
                    .setStorageBucket("bucket1")
                    .setDatabaseUrl("database1")
                    .build();
            FirebaseApp app1 = FirebaseApp.initializeApp(context, options1, "project1");

            FirebaseOptions options2 = new FirebaseOptions.Builder()
                    .setApiKey("apikey2")
                    .setApplicationId("appId2")
                    .setGcmSenderId("sender2")
                    .setStorageBucket("bucket2")
                    .setDatabaseUrl("database2")
                    .build();
            FirebaseApp app2 = FirebaseApp.initializeApp(context, options2, "project2");

            new AsyncTask<Void, Void, Void>() {
                @Override
                protected Void doInBackground(Void... params) {

                    try {
                        String token1 = FirebaseInstanceId.getInstance(app1).getToken("sender1", FirebaseMessaging.INSTANCE_ID_SCOPE);
                        String token2 = FirebaseInstanceId.getInstance(app2).getToken("sender2", FirebaseMessaging.INSTANCE_ID_SCOPE);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    return null;
                }

                @Override
                protected void onPostExecute(Void result) {

                }
            }.execute();

           FirebaseMessaging fcm = FirebaseMessaging.getInstance();   

我不知道这是否有意义,但我希望它无论如何都能帮助你。

2 来自多个发件人但在同一应用程序中的FCM

使用FCM发送多个通知,但在同一服务器端内,说存在多种通知类型,可能具有不同的数据负载和不同的通知标题,我希望通知管理器能够区分客户端的每个通知和将它们发送到不同的Notification Channels ? 编辑我尝试设置notification_id,它不起作用。 编辑:我可以 ...

4 接收来自多个独立发件人的推送通知

我目前正在为开源社交网络开发一个应用程序。 网络可以在您自己的服务器上运行。 理想情况下,该应用程序应允许用户也按需添加社交网络实例,因此用户可以添加例如我们的社区站点和自己的网络实例,并从两个后端接收通知。 是否可以通过某种方式接收来自多个独立发件人的推送通知? 在Fire ...

6 未收到来自多个发件人的Firebase消息

我正在创建一个打算在其他应用程序上使用的库,它将从单独的发件人处接收它自己的Firebase消息。 我有两个Firebase令牌令牌,一个用于我用来测试sdk的应用程序,另一个用于sdk,使用我创建的其他senderID 在Firebase控制台上,我尝试通过向它们发送消息来测试这些令 ...

8 使用whatsapp php api接收来自多个号码的消息

我可以使用whatsapp api为PHP发送和接收消息,但是API有一个简单的演示来接收来自单个号码的消息,请你帮助我使它能够从列表中指定的多个号码接收它数组或其他什么? 我正在使用Whatsapp PHP API,即https://github.com/mgp25/Chat-API ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM