2017-10-11 71 views
0

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

例如,Set user's account info,我可以做这样的事情在我的应用程序:

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

或者我可以简单地写一个火力点云功能,每次我想设置一个用户的帐户信息,我可以做这样的事情:

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)); 

哪种方法更好,为什么?

回答

3

这里很大程度上取决于规模。如果你保持在免费计划范围内,天空就是极限。如果你在大规模工作,那么你将支付RTDB的带宽以及函数的调用,这可能是多余的。

很难预测什么是有用的,不知道你的用例see XY problem

作为一般规则,您可以随后添加函数,因为它们可以从数据库写入触发。所以如果一个写满足,就这样做。稍后,您可以从该写入中触发事件以采取任何您需要的进一步操作。

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

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

+0

非常感谢你,我确实这样想,但只是想确定一下。这非常有帮助! –

相关问题