Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从客户端发送firebase云消息而不公开API机密_Android_Cordova_Firebase_Google Cloud Messaging - Fatal编程技术网

Android 从客户端发送firebase云消息而不公开API机密

Android 从客户端发送firebase云消息而不公开API机密,android,cordova,firebase,google-cloud-messaging,Android,Cordova,Firebase,Google Cloud Messaging,我正在开发一个新的聊天应用程序,目前可以与firebase实时数据库和cordova一起使用 我一直在寻找一个没有后端的解决方案,因为我目前正在工作的应用程序根本不需要任何服务器,除了一个微型服务器,它唯一的功能就是为客户端提供临时授权令牌 此令牌允许客户端直接与firebase一起工作,而不需要更昂贵和加载的服务器,并且仍然具有应用程序使用的中央控制 通过阅读,我认为通知和firebase cloud messages应用程序不能被客户端用来发布消息,而只能侦听通知,因为所有发送消息示例都公开

我正在开发一个新的聊天应用程序,目前可以与firebase实时数据库和cordova一起使用

我一直在寻找一个没有后端的解决方案,因为我目前正在工作的应用程序根本不需要任何服务器,除了一个微型服务器,它唯一的功能就是为客户端提供临时授权令牌

此令牌允许客户端直接与firebase一起工作,而不需要更昂贵和加载的服务器,并且仍然具有应用程序使用的中央控制

通过阅读,我认为通知和firebase cloud messages应用程序不能被客户端用来发布消息,而只能侦听通知,因为所有发送消息示例都公开了服务器API密钥,而服务器API密钥显然不在客户端

是否有一种方法可以从中央服务器发出临时令牌,客户端可以使用该令牌发送消息,而不必将所有消息发送到服务器,然后再返回到其他设备


谢谢

向具有Firebase云消息功能的设备发送下游消息需要访问授权密钥。因此,它应该在一个可信的进程中运行,例如在您控制的硬件上。

Firebase的云功能今天启动,这将解决您的问题!您可以在您的函数代码中初始化firebase admin SDK(它运行在Google的服务器上,而不是客户端),并使用它访问FCM。这样,您就可以发送消息来响应新的数据库项,或者响应HTTPS请求

以下是Firebase的云功能简介:

以下是如何使用firebase admin发送FCM消息:

您可以从客户端发送上游消息,但这要求您实现一个与FCM开放连接的XMPP服务器。FCM尚不支持无服务器的设备到设备消息传递。