这可能是一个奇怪的问题,但是:
我有一个外部服务器,它需要向Android和iOS设备发送通知,因为firebase是我使用它所需的后台通知的唯一方式。
现在,服务器高度安全,不允许来自任何IP的传入连接。我仍然需要发送FCM消息。在文档中,我们必须对发送者进行身份验证(这显然是不可能的,因为这将需要双向连接)。
是否有可能在不进行任何身份验证的情况下发送消息?就像公共帖子一样?
或者如果不是。有没有一种方法,我可以重用相同的私钥进行身份验证,这样我仍然可以在不需要传入连接的情况下触发和忘记?
对于那些感兴趣的原因:我们只发送可能发生变化的数据通知(触发器),真正的安全连接通过单独的通道在后台发生,而不是firebase。Firebase只是更改的触发器,以避免轮询后端
编辑:
这段代码可以实际用作fire-and-forget吗
FileInputStream serviceAccount = new FileInputStream(SERVICE_ACCOUNT_FILE);
FirebaseOptions options = FirebaseOptions.builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.build();
FirebaseApp.initializeApp(options);
//...Generate message
FirebaseMessaging.getInstance().send(message);发布于 2021-04-15 21:57:50
如果您使用传统协议发送消息,则可以通过在请求的Authorization标头中提供静态FCM服务器密钥进行身份验证。有关详细信息,请参阅authorizing legacy protocol send requests上的文档。
虽然建议新应用程序使用版本化(当前为v1)应用程序接口,但没有计划淘汰旧的应用程序接口。
快速浏览一下providing credentials manually上的文档,您似乎还可以使用预先生成的服务帐户凭据进行身份验证。这也不需要在运行时进行任何动态身份验证。
https://stackoverflow.com/questions/67106687
复制相似问题