通过Http请求通过Cloud Functions进行Firebase Cloud Messaging

时间:2018-10-13 08:44:48

标签: android firebase firebase-cloud-messaging google-cloud-firestore

尝试使用Firebase云消息传递为我的android应用程序实现消息传递过程,因为我没有任何服务器,也没有计划使用任何一种服务器,因此遇到了一些限制。

我打算做什么: -使用okhttp创建所有需要的http请求表单。 -将所需的http请求发送到我的云功能 -这些功能将从Firestore获取需要的数据,并在实际向主题发送云消息时响应请求。

这是我发现实现自己的REST API的唯一方法,因为我无法在android客户端应用程序中使用Admin SDK,并且没有任何处理服务器。

有没有例子,教程也一样?欢迎任何建议。

2 个答案:

答案 0 :(得分:1)

您确实不需要服务器来实现您的功能需求。正如您在问题中提到的,您可以很好地使用Cloud Functions(一种无用的解决方案)。

要发送Firebase Cloud Messaging通知时,您可以:

  1. 将通知的内容写到新的Firestore文档中(到特定的文档集合中)。与实施HTTP Cloud Function发送数据相比,此处的优势在于,您可以保留请求的历史记录,并且由于使用Android SDK for Firestore可以简化代码编写。
  2. 设置一个Cloud Function,当在此集合中创建新文档并发送通知时触发该功能。

有一个官方的示例Cloud Function可以做到这一点,请参见https://github.com/firebase/functions-samples/tree/Node-8/fcm-notifications。该函数的代码位于https://github.com/firebase/functions-samples/blob/Node-8/fcm-notifications/functions/index.js

在您的情况下,您将触发云功能,如下所示:

exports.sendNotification = functions.database.ref('/notificationsRequests/{requestUid}')
.onCreate(async (snap, context) => {})

请参阅https://firebase.google.com/docs/functions/firestore-events


请注意,您将在SO上找到很多有关此主题的问题和答案:https://stackoverflow.com/search?q=firestore+send+notifications

答案 1 :(得分:0)

经过研究,我发现firebase可以提供我一直在寻找的可调用函数

https://firebase.google.com/docs/functions/callable

通过这种方式,人们可以交换通知,而无需任何数据库进行实际转换。希望这可以帮助某人。