首页 > 解决方案 > 我是在 C# 还是谷歌云平台上运行函数?

问题描述

当我的 firebase 实时数据库发生变化时,我希望向用户发送通知。我在我的 Xamarin.Android 应用程序中设置了 FCM。不过,我对 Firebase 还是很陌生,所以我对数据库触发器的工作方式有点困惑。(https://firebase.google.com/docs/functions/database-events

我很困惑这个功能,即“OnCreate”或“OnWrite”是写在谷歌云平台还是我的C#代码上?

换句话说,我是不是:

  1. 在 TypeScript 中编写代码以检测我的数据库中的更改,然后通过 FCM 推送通知,或者
  2. 在 C# 中编写代码以检测更改,如下所示:How to get notification in xamarin forms on firebase data change?

谢谢。

标签: c#androidfirebasefirebase-cloud-messaging

解决方案


要通过 FCM向设备发送消息,您必须在代码中指定 FCM服务器* 键。顾名思义,此密钥应仅用于服务器端代码或其他受信任的环境中。这样做的原因是任何拥有 FCM 服务器密钥的人都可以向您的所有用户发送他们想要的任何消息。如果您要在客户端 C# 代码中包含此密钥,恶意用户可以找到它,并且您将用户置于危险之中。

Cloud Functions 允许您在 Google Cloud 的服务器上运行一小段 Node.js 代码,这些代码会响应您的 Cloud/Firebase 项目中的事件(例如将文档写入 Cloud Firestore 时)而运行。此代码在 Google 的服务器上运行,因此是调用 FCM API 发送通知的理想场所。

这也是为什么你会看到很多这种方法的例子。但是,如果您已经有另一个服务器端平台,那么调用 FCM API 从那里发送通知也是完全可以的。


推荐阅读