【问题标题】:Should I make a RESTful API using Cloud Functions or call Firebase and Firestore in app?我应该使用 Cloud Functions 制作 RESTful API 还是在应用程序中调用 Firebase 和 Firestore?
【发布时间】:2020-11-11 12:57:04
【问题描述】:

我目前正在从头开始创建一个市场移动应用程序,并且我将 React Native 用于前端部分,并将 Firebase 用于后端(使用 Firebase 和 Firestore)。

我想知道:

  • 我应该使用云函数创建一个 RESTful API 并表达来创建 API 端点(将连接到 firebase 和 firestore),我将从我的 React Native 应用程序中的 redux 操作调用(使用redux thunk)。

  • 或者,我应该直接从 redux 操作中调用 firebase 和 firestore

我看到了每种方法的优缺点。

Restful API 专家:

  • 更安全,因为我可以更轻松地检查和操作提交的数据

  • 自定义 API 回复(我可以操作返回数据)

Restful API 缺点:

  • 可能会更慢,因为我必须调用一个 API 端点,然后再调用 firebase 和/或 firestore。

  • 在 Firestore 数据上设置监听器并不容易

你怎么看?

知道我预测该应用每天将获得几千名用户,我应该选择哪个选项。我希望它尽可能快速和安全,并且能够为通知目的设置监听器。

【问题讨论】:

  • 在不知道你想要做什么的情况下,这完全是一个见仁见智的问题。我在blog post 中对此进行了广泛的讨论。如果您想针对您的特定用例展开一般性讨论,我建议您在允许的论坛上发帖,例如 Reddit

标签: firebase react-native google-cloud-firestore google-cloud-functions


【解决方案1】:

如果您必须管理用户、产品等,我认为您应该混合使用它们。Firebase 生成具有不同角色的客户端和管理员 sdk。如果您不需要管理任何产品或用户等数据,您可以简单地使用客户端 sdk。

我的建议是您可以在 API(服务器端)上使用 admin sdk,并随时在您的客户端上使用客户端 sdk。

通过客户端 sdk 用作 API、监听数据、实时聊天等的管理。

您可以查看adminclient sdk。还有用于 React Native here 的 npm 包。

【讨论】:

  • 需要实时更新的数据,例如喜欢、不喜欢、评级,应该直接从客户端调用到 firebase。对于其他建议在服务器端使用 admin sdk。如果您打算进行授权,则必须使用 admin sdk。
【解决方案2】:

混合会有帮助,你可以试试:

  • 使用客户端 SDK 监听少量数据
  • 使用云功能写入和排序数据

根据我的经验,从长远来看,写入使用有序 id(在我的情况下)的 firebase 数据库会导致一些巨大的问题。当应用程序从不活动状态恢复时,我的应用程序意外写入根索引而不是子索引时,我丢失了大量数据,因为 android 系统清除了 RAM。

另外,对于通知,请使用Firebase Cloud Messaging

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-21
    • 2019-11-11
    • 2019-10-06
    • 1970-01-01
    • 2014-05-01
    • 2016-04-03
    • 2020-07-05
    • 2013-02-16
    相关资源
    最近更新 更多