当前位置: 首页 > 知识库问答 >
问题:

Spring启动-Firebase管理SDK-通知

汝臻
2023-03-14

我试图初始化管理SDK,但在服务号初始化中面临400个坏请求。它在我的开发窗口环境中工作得很好,但是当我在linux中部署时,我面临着这个问题。

        SpringApplication.run(OrderApplication.class, args);

        FileInputStream serviceAccount = new FileInputStream(GlobalValue.serviceAccount);

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

        FirebaseApp.initializeApp(options);

    }

我正在从属性文件读取文件路径。

service.account=/home/service account.json

我当时正试图发送推送通知,当时我正面临问题。


        try {
            MulticastMessage multicastMessage = MulticastMessage.builder().addAllTokens(lDeviceTokens)
                    .setNotification(new Notification(title, message)).build();

            BatchResponse response = FirebaseMessaging.getInstance().sendMulticast(multicastMessage);
            // See the BatchResponse reference documentation // for the contents of
            // response.
            System.out.println(response.getSuccessCount() + " messages were sent successfully");
        } catch (FirebaseMessagingException e) {
            e.printStackTrace();
            System.out.println(e.getLocalizedMessage());
        }
    }

查出

. java: 141 S)
at org . apache . tomcat . util .neC . Socket ProcessorBase . run (Socket ProcessorBas
e . java : 49)
at java . concurrent . ThreadPooIExecuCor . runWorker (ThreadPooIExecuC01 .
java : 1149)
at java . concurrent . ThreadPooIExecucor$Worker . run (ThreadPooIExecuC01
. java : 624)
at org . apache . ComcaC . util . Chreads . TaskThread$WrappingRunnabIe . run (TaskTh
read . java : 61)
at java. lang . Thread. run (Thread. java : 7 48)
Caused by: java.io. IOExcepCion: Error getting access token for service account :
400 Bad Request
"error" • "invalid grant"
"error description" • "Invalid JWT: Token must be a short—lived token (60 minut
es) and in a reasonable timeframe. Check Y2ur iat and exp values and use a clock
with skew to account for clock differences between systems . "
at com.google . auth . oauCh2 . ServiceAccounCCredenCiaIs . refreshAccessToken ( S
erviceAccounCCredenCiaIs . java : 401)
at com.google . auth . oauCh2 . OAuth2CredenCiaIs . refresh (OAuth2CredenCiaIs . j a
va:181)
at com.google . auth . oauCh2 . OAuth2CredenCiaIs . geCRequesCMeCadaCa (OAuth2Cre
dentials . java : 167)

共有1个答案

庄元龙
2023-03-14

请参阅这些链接,如果他们有帮助,看起来是一个服务器时间问题,因为你移动到linux

Google客户端无效JWT:令牌必须是短期令牌

令牌必须是短期令牌,并且在合理的时间范围内

 类似资料:
  • 我试图将Firebase Admin SDK添加到我的Java Web应用程序中,但在init上出现以下错误: 我将Firebase依赖项添加到pom.xml文件中,并使用以下代码初始化Firebase:ClassLoader ClassLoader=Thread.currentThread().GetContextClassLoader();InputStream为=ClassLoader.Ge

  • 我试图将Spring引导指南中的管理事务示例扩展到两个数据源,但是@事务注释似乎只适用于其中一个数据源。 在"Application.java"中,我添加了两个数据源及其Jdbc模板的bean。在"BookingService.java"中,我使用了属于第二个数据源的JdbcTemboard。 这是我的“Application.java”: 下面是“BookingService.java”: 这些

  • 我正在为Python使用Firebase Admin SDK。据我所知,在云控制台的IAM部分,admin SDK具有编辑器和存储对象管理角色。有什么方法可以通过Python将上传的对象公之于众? 在docs:Python GCS API中还没有找到其他有用的东西 谢了。 代码示例

  • 是否可以配置Spring批处理管理员来启动主作业和从作业。我们有一个进程作为主节点和3-4个从节点。 Spring batch admin在单独的JVM进程中运行,但所有Spring批处理作业都使用相同的批处理数据库模式。

  • 在firebase storage的web sdk中,您可以从Blob数据上载图像。我有一个nodeJS应用程序,想将blob数据中的图像上传到我的存储桶中。在文档中,如果运行节点服务器环境,建议使用AdminSDK。但我在firbase存储管理文档中找不到此功能。 这是我的密码:

  • 在我的应用程序中,我配置了XML启动bean: 我还配置了事务管理: 并且具有自动连线的: 因此,它失败与异常: 我做错了什么?