FCM服务器 admin-SDK接入指引

本文档详述了如何使用Firebase Admin SDK在Java环境中集成FCM,包括环境配置、SDK导入、初始化、测试方案、定向与主题推送、批量发送及错误处理等步骤,适用于服务端开发者。
摘要由CSDN通过智能技术生成

前言

完成了初步测试,基本功能已经可以运用,因此整理一套相对完善的服务端接入指引
部分资料参考自
FCM服务端 - 谷歌云推送 - “errorCode“: “SENDER_ID_MISMATCH“-故障记录

Firebase 官方文档

前置操作

由于是Google服务因此当你在国内本地搭建环境时需要翻墙,需要为代码配置代理的服务的端口。

FCM集成

官网提供了使用起来非常方便的sdk,https://firebase.google.com/docs/admin/setup
并且有详细的接入流程。

admin-sdk导入

我采用了方便的maven进行sdk集成

<dependency> <!-- 谷歌推送依赖 -->
    <groupId>com.google.firebase</groupId>
    <artifactId>firebase-admin</artifactId>
    <version>6.10.0</version>
</dependency>

初始化sdk

为了能在非Google环境下进行凭据确认,我采用设置 GOOGLE_APPLICATION_CREDENTIALS 环境变量的ADC确认方法。
GOOGLE_APPLICATION_CREDENTIALS 环境变量设置为包含服务帐号密钥的 JSON 文件的文件路径。
可以手动设置环境变量或者控制台:
set GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"
环境变量配置后需重启使得配置生效(也许有些情况下不用,但是我测试时需要重启否则读不到这个值)

//sdk的初始化语句;
FirebaseOptions options = new FirebaseOptions.Builder()
    .setCredentials(GoogleCredentials.getApplicationDefault())
    .setDatabaseUrl("https://<DATABASE_NAME>.firebaseio.com/")
    .build();

FirebaseApp.initializeApp(options);

测试方案

集成后可以先测试一下是否集成成功,直接运行初始化函数,如果不报错表示json文件的路径和里面的几个关键字段是正确的(服务帐号密钥的 JSON 文件不要自己去编辑,理论上直接下载的就一定是正确的)。
然后可以进行进一步测试,查看是否能够沟通FCM服务器,检验sdk运行情况,这里我提供一个思路:

			//设置环境
        	FirebaseOptions options = FirebaseOptions.builder()
        		    .setCredentials(GoogleCredentials.getApplicationDefault())
        		    .setServiceAccountId(client_email)		  
        		    .build();

            FirebaseApp.initializeApp(options);
            
            CreateRequest request = new CreateRequest()
            	    .setEmail("user2@example.com")
            	    .setEmailVerified(false)
            	    .setPassword("secretPassword")
            	    .setPhoneNumber("+11234567892")
            	    .setDisplayName("John Doe")
            	    .setPhotoUrl("http://www.example.com/12345678/photo.png")
            	    .setDisabled(false);

            	UserRecord userRecord = FirebaseAuth.getInstance().createUser(request);
            	System.out.println("Successfully created new user: " + userRecord.getUid());

这段代码的功能为创建用户,用这种方式可以验证拥有的权限文件是否可用,如果成功将获得成功打印,如果失败请自行排查bug
参考思路:https://firebase.google.com/docs/auth/admin/manage-users

初始化单个或多个应用

单个应用初始很简单,如果在需要情况下也可以根据需求初始多个应用

// Initialize the default app
FirebaseApp defaultApp = FirebaseApp.initializeApp(defaultOptions);

// Initialize another app with a different config
FirebaseApp otherApp = FirebaseApp.initializeApp(otherAppConfig, "other");

System.out
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值