如何从 Android 中的 Firebase 应用内消息中检索自定义数据

Posted

技术标签:

【中文标题】如何从 Android 中的 Firebase 应用内消息中检索自定义数据【英文标题】:how to retrieve custom data from Firebase In-App Messaging in android 【发布时间】:2020-04-06 08:18:00 【问题描述】:

我正在探索 Firebase 应用内消息,其中当我触发一个事件时,我能够查看我在 Firebase 控制台中设置的横幅/模式对话框。

但是,我在控制台中的以下路径下看到了一个设置自定义数据的选项:

应用内消息 -> 撰写广告系列 -> 其他选项

所以我设置了如下所示的键值对:

那么,现在我想在我的 android 应用中检索这些数据。如何检索数据?

我尝试了以下代码,但没有成功:

1.

    FirebaseInAppMessaging.getInstance().triggerEvent("my_event");
    FirebaseInAppMessaging.getInstance().setMessageDisplayComponent(new FirebaseInAppMessagingDisplay() 
        @Override
        public void displayMessage(@NonNull InAppMessage inAppMessage, @NonNull FirebaseInAppMessagingDisplayCallbacks firebaseInAppMessagingDisplayCallbacks) 
            CampaignMetadata campaignMetadata = inAppMessage.getCampaignMetadata();
            MessageType messageType = inAppMessage.getMessageType();
    //it doesn't give my key-value data
    //I can't see any methods like getData() which returns an object
        
    );
    FirebaseInAppMessaging.getInstance().addClickListener(new FirebaseInAppMessagingClickListener() 
        @Override
        public void messageClicked(@NonNull InAppMessage inAppMessage, @NonNull Action action) 
            Button button = action.getButton();
        
    );
    FirebaseInAppMessaging.getInstance().addImpressionListener(new FirebaseInAppMessagingImpressionListener() 
        @Override
        public void impressionDetected(@NonNull InAppMessage inAppMessage) 
            MessageType messageType = inAppMessage.getMessageType();
    //it doesn't give my key-value data
    //I can't see any methods like getData() which returns an object
        
    );

2.我也尝试创建一个 FirebaseMessagingService,然后我也没有得到任何数据:

public class FBMService extends FirebaseMessagingService 

@Override
public void onMessageReceived(@NonNull RemoteMessage remoteMessage) 
   for (Map.Entry<String, String> entry : remoteMessage.getData().entrySet()) 
        String key = entry.getKey();
        String value = entry.getValue();
        Log.d(TAG, "key, " + key + " value " + value);
    

这里onMessageReceived()本身没有被触发!

【问题讨论】:

我可以知道投反对票的原因吗? 【参考方案1】:

我还没有找到这个记录在案的here,但是InAppMessage 类中有一个getData() 方法,它返回键值映射,即。广告系列数据。

【讨论】:

以上是关于如何从 Android 中的 Firebase 应用内消息中检索自定义数据的主要内容,如果未能解决你的问题,请参考以下文章

如何从firebase检索多个数据到android中的列表视图?

如何从android中的firebase中检索List对象

如何从 Android 中的 Firebase 应用内消息中检索自定义数据

从Android中的firebase下载多个文件时如何管理内存

如何根据 android 中的用户位置从 Firebase 数据库中检索数据?

如何从 ListView 中删除 Firebase Android 中的特定节点