📜  获取设备令牌 firebase - Java (1)

📅  最后修改于: 2023-12-03 15:41:30.731000             🧑  作者: Mango

获取设备令牌 Firebase - Java

Firebase提供了获取设备令牌的方法,通过该方法可以在与设备进行实时通信的时候使用。在Java中,我们可以使用Firebase Admin SDK获取设备令牌。下面分以下几步介绍如何在Java代码中获取设备令牌。

步骤1: 到Firebase控制台中获取服务端密钥

在获取设备令牌之前,需要在Firebase控制台中获取服务端密钥。如下图所示,选择项目 -> 项目设置 -> 服务帐号 -> 生成新私钥,下载私钥文件。

Firebase控制台获取服务端密钥

步骤2: 引入所需的Firebase库

在Java代码中需要引入Firebase Admin SDK库,可以在pom.xml文件中添加以下依赖:

<dependency>
  <groupId>com.google.firebase</groupId>
  <artifactId>firebase-admin</artifactId>
  <version>8.0.0</version>
</dependency>
步骤3: 初始化Firebase

在代码中,我们需要初始化Firebase,可以使用以下代码进行初始化:

InputStream serviceAccount = new FileInputStream("path/to/serviceAccountKey.json");

FirebaseOptions options = new FirebaseOptions.Builder()
  .setCredentials(GoogleCredentials.fromStream(serviceAccount))
  .setDatabaseUrl("https://<databaseName>.firebaseio.com/")
  .build();

FirebaseApp.initializeApp(options);

其中 serviceAccountKey.json 是在步骤1中下载的私钥文件,需要将其放置在Java项目目录下,并修改上述代码中的 path/to/serviceAccountKey.jsonserviceAccountKey.json 的实际路径。 databaseName 是 Firebase数据库的名称,需要根据实际情况修改。

步骤4: 获取设备令牌

有了上面的准备工作,我们就可以通过Firebase Admin SDK中提供的 FirebaseMessaging 类来获取设备令牌了。以下是获取设备令牌的代码片段:

String token = FirebaseMessaging.getInstance().sendAsync(
        Message.builder()
                .setToken("<deviceId>")
                .build())
    .get();

其中 <deviceId> 是设备的唯一标识符,可以通过设备注册推送通知获取。调用 sendAsync 方法可以异步发送通知消息,返回 ApiFuture<String> 对象,可以通过 get() 方法获取设备令牌。

结论

通过以上步骤,我们可以在Java代码中获取设备令牌,方便地进行实时通信或者推送通知服务。