何时为Firebase实时数据库使用云功能?

时间:2018-05-20 17:23:31

标签: android firebase google-cloud-functions

我不清楚使用Firebase for Android应用程序的架构。您是否可以在不使用云功能的情况下从客户端制作所有内容,因为可以使用java中的函数访问数据库。它是否仅用于安全目的,以限制客户发出问题?

1 个答案:

答案 0 :(得分:1)

大多数功能确实可以直接从客户端应用程序执行,使用适用于您的应用程序平台的Firebase SDK。只要有可能,我强烈建议以这种方式实施。

但某些类型的功能并不适合直接从客户端执行。它们通常属于以下主要类别:

  • 该操作需要特权信息。例如,如果要向应用程序用户发送推送通知,则需要指定FCM服务器密钥。顾名思义,此密钥只应在您控制的服务器上使用,或者在其他受信任的环境中使用,例如云功能。同样的原因也适用于与支付网关交互的事情,以及Google Cloud Platform中需要服务器端API密钥的许多API。
  • 操作本身的代码 是特权操作。例如,你经常在游戏中找到这个,你要验证用户没有作弊。如果您将此代码放在应用程序本身中,恶意用户可以看到它并使用它来规避您的检测。通过将代码移动到云函数中,应用程序的用户无法再看到代码。
  • 代码需要比用户设备上可用的更多“电源”(CPU,网络,内存,磁盘空间,电池)。由于云功能在谷歌数据中心运行,它们始终连接到主电源,它们具有可靠的CPU,良好的网络和可配置的内存/ RAM磁盘空间。

另一个优势是云功能对于您定位的任何平台上的用户都是相同的。假设您有一个复杂的算法,您希望Android,iOS和Web上的用户使用它。如果在云函数中实现算法,则只需实现一次,然后从每个平台调用它,而不必为每个平台实现算法。

我还建议您查看list of use-cases in the Cloud Functions for Firebase documentation