java - 添加 Firebase Admin 6.12.2 后 Netty 无法处理请求

标签 java playframework netty playframework-2.5

我正在使用 scala 版本 2.11.7 和 sbt 0.13 的 play 框架 2.5.4,添加 "com.google.firebase"% "firebase-admin"% "6.12.2"< 后一切停止工作build.sbt 文件

根据请求收到以下错误

[error] p.c.s.n.PlayRequestHandler - Exception caught in Netty
java.lang.AbstractMethodError: null
    at io.netty.util.ReferenceCountUtil.touch(ReferenceCountUtil.java:77)
    at io.netty.channel.DefaultChannelPipeline.touch(DefaultChannelPipeline.java:116)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
    at com.typesafe.netty.http.HttpStreamsHandler.channelRead(HttpStreamsHandler.java:129)
    at com.typesafe.netty.http.HttpStreamsServerHandler.channelRead(HttpStreamsServerHandler.java:96)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)

最佳答案

如果有人面临同样的问题,以下内容对我有用,

将 firebase-admin-6.12.2.jar 添加到外部库并将以下依赖项添加到您的 build.sbt

"com.google.guava" % "guava" % "28.2-jre",
"com.google.api" % "api-common" % "1.8.1",
"com.google.api-client" % "google-api-client" % "1.30.1",
"com.google.auth" % "google-auth-library-oauth2-http" % "0.20.0"

并使用以下代码使用 firebase admin 发送通知

String fcmToken = "";
Message message = Message.builder()
                            .setNotification(new Notification(
                                    title,
                                    context))
                            .setToken(fcmToken)
                            .build();
String response = null;
try {
         response = FirebaseMessaging.getInstance(FirebaseApp.initializeApp(getOptions()))
                                    .send(message);
     } catch (FirebaseMessagingException e) {
       e.printStackTrace();
     }
System.out.println("Successfully sent message: " + response);



FirebaseOptions getOptions() {
    FileInputStream serviceAccount = null;
    FirebaseOptions options =null;
    try {
             serviceAccount = new FileInputStream("conf/projectPrivateKey.json");
        } catch (FileNotFoundException e) {
                e.printStackTrace();
        }


        try {
                 options = new FirebaseOptions.Builder()

                 .setCredentials(GoogleCredentials.fromStream(serviceAccount))

                 .setDatabaseUrl("https://DATABASE_NAME.firebaseio.com")
                            .build();
             } catch (IOException e) {
                    e.printStackTrace();
             }

    return options;
}

关于java - 添加 Firebase Admin 6.12.2 后 Netty 无法处理请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60428155/

相关文章:

java - Hibernate createNativeQuery 使用 IN 子句

java - 骡子 ESB : xml to maps transformer produces empty hashmaps

scala - 避免在 play 框架的所有 scala 操作中执行相同的方法

google-app-engine - 玩! + GAE + 文件上传

java - 访问 Java[Maven] 项目中的资源

java - token "}"上的类型语法错误,删除此 token

java - Netty - 解码器的正确使用

java - Netty 4.0中关闭连接后的 channel 地址

java - 在 Play Framework 中发送到 Controller 之前修剪参数

java - Netty 有没有办法获取特定的 TCP 选项?