实现firebase FCM和Analytics

这篇具有很好参考价值的文章主要介绍了实现firebase FCM和Analytics。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前提:1.需要vpn 2.带有google 服务的手机
注意!!! 这个在2023年6月30日时还是测试版,所以手机有概率接收不到消息

编写代码前需要在https://console.firebase.google.com/ 配置好参数

实现firebase FCM和Analytics
实现firebase FCM和Analytics
实现firebase FCM和Analytics
这里的token值需要填写代码内的initFCM()的token值测试

实现firebase FCM和Analytics
这里需要填入FirebaseInstallations.getInstance().getId().addOnCompleteListener()返回的id测试

需要引入的依赖
implementation platform(‘com.google.firebase:firebase-bom:32.1.1’)
implementation ‘com.google.firebase:firebase-analytics’
implementation ‘com.google.firebase:firebase-crashlytics’
implementation ‘com.google.firebase:firebase-config’
implementation ‘com.google.firebase:firebase-perf’
implementation ‘com.google.firebase:firebase-messaging’
implementation ‘com.google.firebase:firebase-inappmessaging-display’文章来源地址https://www.toymoban.com/news/detail-512313.html

    public static FirebaseRemoteConfig sRemoteConfig = null;

    public static FirebaseRemoteConfig getRemoteConfig() {
        if (sRemoteConfig == null) {
            sRemoteConfig = FirebaseRemoteConfig.getInstance();
        }
        return sRemoteConfig;
    }

    public static FirebaseAnalytics sAnalytics = null;
    public static FirebaseAnalytics getAnalytics() {
        if (sAnalytics == null) {
            sAnalytics = FirebaseAnalytics.getInstance(UIUtils.getContext());
        }
        return sAnalytics;
    }

    //    初始化firebase 配置
    public static void acquireRemoteConfig() {
        sRemoteConfig = getRemoteConfig();
        String confTime = sRemoteConfig.getString("remote_config_request_time");
        int cacheExpiration = Integer.parseInt(confTime.isEmpty() ? "12" : confTime) * 60 * 60;
        FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
                .setMinimumFetchIntervalInSeconds(cacheExpiration)
                .build();
        sRemoteConfig.setConfigSettingsAsync(configSettings);
        sRemoteConfig.setDefaultsAsync(R.xml.remote_config_default);
        sRemoteConfig.fetchAndActivate()
                .addOnCompleteListener(task -> {
                    if (task.isSuccessful()) {
                        Slog.d("fetchAndActivate  success");
                    }
                    // 是否初始化firebase的 In App Message功能
                    Boolean showInAppMessaging = FBRCUtils.getIsOpenInAppMessage();
                    FirebaseInAppMessaging.getInstance().setMessagesSuppressed(!showInAppMessaging);
                    Slog.d("fetchAndActivate  success="+showInAppMessaging);
                });

        // 实时RemoteConfig监听
        sRemoteConfig.addOnConfigUpdateListener(new ConfigUpdateListener() {
            @Override
            public void onUpdate(@NonNull ConfigUpdate configUpdate) {
                sRemoteConfig.fetchAndActivate().addOnCompleteListener (task -> {
                    if (task.isSuccessful()) {
                        Slog.d("fetchAndActivate  success");
                    } else {
                        Slog.d("fetchAndActivate  fail");
                    }
                });
            }

            @Override
            public void onError(@NonNull FirebaseRemoteConfigException error) {
                Slog.d("Config update error with code: " +  error);
            }
        });

    }
    private void initFCM() {
        FirebaseMessaging.getInstance().getToken().addOnCompleteListener( task -> {
                    if (!task.isSuccessful()) {
                        Slog.d("Fetching FCM registration token failed ${task.exception}");
                        return;
                    }
                    //TokenResult token = task.getResult();
                    Slog.d("Fetching FCM FirebaseMessaging token:{}\n"+task.getResult());
        });
    }
      FirebaseAnalytics firebaseAnalytics = OsportApplication.getAnalytics();
        if (!btdevice.isEmpty()) {
            firebaseAnalytics.setUserProperty("btdevice", btdevice);
            firebaseAnalytics.setUserProperty("protoID", protoID);
            firebaseAnalytics.setUserProperty("adapterID", adapterId);
            firebaseAnalytics.setUserProperty("curVersion", curVersion);
        }

     FirebaseInstallations.getInstance().getId().addOnCompleteListener(task -> {
                    if (task.isSuccessful()) {
                        Slog.d("Installation ID: " + task.getResult());
                        OsportApplication.serverParameter.setFiId(task.getResult());
                        Slog.d("serverParameter => ${OSportApplciation.serverParameter.toString()}");
                    } else {
                        Slog.e("Installations", "Unable to get Installation ID");
                    }
            }  );

到了这里,关于实现firebase FCM和Analytics的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 安卓接入google的Firebase登录教程

    1.https://console.firebase.google.com创建安卓项目                 2.添加google登录              3.添加项目的SHA证书指纹                       4. FireBase自动生成(API和服务)   https://console.cloud.google.com/apis/credentials?authuser=1project=battle-against-darkness            5.下载google-s

    2024年01月21日
    浏览(30)
  • Unity使用Gradle打包方式接入Firebase时配置文件google-services.json遇到的坑

    1、首先在mainTemplate.gradle最上引入 ‘’com.google.gms.google-services’ 如下图: 2、在mainTemplate.gradle添加任务,将下载下来的google-services.json复制到gradle项目根目录下 如下图: 将你原始文件 google-services.json 中的 package_name 的属性值 改为 com.unity3d.player 如下图:

    2024年02月11日
    浏览(35)
  • 电脑C盘空间不够,直接物理扩容。有前提条件,扩容的空间需要在同一个硬盘上

    扩容前提条件: ①扩容的空间需要在同一个硬盘上,比如你电脑有固态硬盘和机械硬盘,你不能把机械硬盘的空间放在和固态同一个C盘中 ②能扩容的是连续的磁盘空间 因为磁盘管理是这样的,C盘的扩盘只能从连续的空间扩大,也就是说D盘要删了才能扩大C盘。扩大的简单逻

    2024年02月09日
    浏览(37)
  • 黑客必杀技能之一,黑掉目标服务器后如何快速定位和查找自己需要的目标、信息、文件?如何实现输出内容带有炫酷的颜色和背景色等等?

    黑客必杀技能之一,黑掉目标服务器后如何快速定位和查找自己需要的目标、信息、文件?如何实现输出内容带有炫酷的颜色和背景色等等? 查找资源的方法有很多种,尤其是结合各种正则表达式的用法,先看一下find的高级用法和汇总。 find 命令的基本语法如下: 一、基本

    2024年02月22日
    浏览(38)
  • OpenAi最简洁的Java流式返回接入方式,没有第三方依赖,只需要使用Spring Boot即可!轻松构建你的带有聊天记忆、画图功能的chatgpt!

    OpenAi最简洁的Java流式返回接入方式,没有第三方依赖,只需要使用Spring Boot即可!轻松构建你的带有聊天记忆、画图功能的chatgpt! GitHub - NiuXiangQian/chatgpt-stream: OpenAi最简洁的Java流式返回接入方式,没有第三方依赖,只需要使用Spring Boot即可!轻松构建你的带有聊天记忆、画图

    2024年02月12日
    浏览(42)
  • Hystrix 如何在不引入 Archaius 的前提下实现动态配置更新

    Hystrix 是 Netflix 开源的一个限流熔断降级组件,防止依赖服务发生错误后,将调用方的服务拖垮。这里对 Hystrix 本身不做过多介绍。 Hystrix 目前处于维护状态(不再更新),但是还有大量项目对它进行了使用,因此仍然非常重要。 在 Hystrix 中, HystrixCommand 是非常重要的一个类

    2023年04月24日
    浏览(24)
  • Java实现post请求(带有参数)

    pom文件所需依赖,有些依赖不是必需的,这里没有删除

    2024年02月12日
    浏览(46)
  • Flutter中的Firebase:如何使用Flutter连接Firebase数据库

    作者:禅与计算机程序设计艺术 作为一名人工智能专家,程序员和软件架构师,我经常会被Flutter的技术魅力所吸引。Flutter作为Kotlin和JavaScript的混合编程语言,具有高效、快速、美观的开发体验。同时,Flutter也是Google推荐的跨平台移动应用开发首选。而在Flutter中,Firebase数

    2024年02月09日
    浏览(32)
  • 如何使用CSS实现一个带有动画效果的进度条?

    前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而又亲切的学习平台。在这个

    2024年02月11日
    浏览(48)
  • 模糊C均值聚类(Fuzzy C-means)算法(FCM)

    本文的代码与数据地址已上传至github:https://github.com/helloWorldchn/MachineLearning 1、模糊集理论 L.A.Zadeh在1965年最早提出模糊集理论,在该理论中,针对传统的硬聚类算法其隶属度值非0即1的严格隶属关系,使用模糊集合理论,将原隶属度扩展为 0 到 1 之间的任意值,一个样本可以

    2024年02月09日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包