【问题标题】:Should I use firebase cloud functions for every http request?我应该为每个 http 请求使用 firebase 云功能吗?
【发布时间】:2017-10-12 06:27:52
【问题描述】:

编写一个允许用户RegisterLoginUpdate Account InfoPost (Each post contains a short message with 1500 chars or less and/or up to 9 images)Download Posts 的 React Native 应用程序。我可以在不使用云功能的情况下完成所有这些任务,但我想知道哪种方法更好,为什么?

例如,对于Set user's account info,我可以在我的应用程序中执行以下操作:

    firebase.database().ref(`users/${uid}`)
                       .set({
                           firstName: 'Stack',
                           lastName: 'Overflow'
                       });

或者我可以简单地编写一个 firebase 云函数,每次我想设置用户的帐户信息时,我都可以这样做:

    const SET_ACCOUNT_URL = 'https://firebase.set_account_url.com';
    axios.post(SET_ACCOUNT_URL, {
        firstName: 'Stack',
        lastName: 'Overflow'
    })
    .then(() => ...Do Something Here...)
    .catch((error) => console.log(error));

哪种方法更好,为什么?

【问题讨论】:

    标签: reactjs firebase react-native firebase-realtime-database


    【解决方案1】:

    很大程度上取决于这里的规模。如果您仍在免费计划的限制范围内,那么天空就是限制。如果您正在大规模工作,那么您需要为 RTDB 的带宽以及函数调用付费,这可能是多余的。

    如果不了解您的用例see XY problem,很难预测什么会有用。

    作为一般规则,您可以随时添加函数,因为它们可以通过数据库写入触发。因此,如果写入就足够了,那就这样做。稍后,您可以触发该写入的事件以采取您需要的任何进一步操作。

    如果您需要隐藏专有功能(即商标算法或安全游戏逻辑),请使用函数。如果您知道您将对这些数据进行计算,或者如果它不能由 DB 事件触发,那么请使用函数。

    如果它只是要在数据库中结束并且目标是验证或限制访问,请写入数据库并使用security rules

    【讨论】:

    • 非常感谢,我确实这么认为,但只是想确定一下。这很有帮助!
    猜你喜欢
    • 2018-05-26
    • 1970-01-01
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    • 2019-10-17
    • 2019-06-13
    • 1970-01-01
    相关资源
    最近更新 更多