编写一个React Native App,允许用户Register
,Login
,Update Account Info
,Post (Each post contains a short message with 1500 chars or less and/or up to 9 images)
和Download Posts
。我可以在不使用云功能的情况下完成所有这些任务,但我想知道哪种方法更好,为什么?
例如,对于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));
哪种方法更好,为什么?
答案 0 :(得分:4)
很大程度上取决于规模。如果你仍然在免费计划限制范围内,那么天空就是极限。如果你正在大规模工作,那么你将支付RTDB的带宽以及函数的调用,这可能是多余的。
如果不了解您的用例see XY problem,很难预测哪些内容有用。
作为一般规则,您可以随时添加功能,因为它们可以通过DB写入触发。因此,如果写入足够,就这样做。之后,您可以触发该写入事件,以采取您需要的任何进一步操作。
如果您需要隐藏专有功能(即商标算法或安全游戏逻辑),请使用功能。如果您知道您将对该数据进行计算,或者如果它不能由DB事件触发,则使用函数。
如果它最终会在数据库中结束并且目标是验证或限制访问,请写入数据库并使用security rules。