noob Firebase用户在这里!
最初,我试图将其作为一个云功能来实现,但我失败了。现在我可以做到了,但我不知道使用其中一个的优点或缺点是什么?_(ツ)_/
我应该在什么时候使用云功能,什么时候使用客户端逻辑?我需要一个心理模型来解决这个问题。
我最终这样做是为了更新一个简单的下载计数器,它很有效:
const { firebase, userAuth } = useContext(FirebaseContext);
const countLinkClicks = async (id, userId) => {
const statsRef = firebase.db.collection('publicProfiles').doc('--stats--');
await statsRef.update({
totalDownloads: firebase.increment
})
}
"firebase"one_answers"increment"在另一个文件中定义:
class Firebase {
constructor(app) {
if (!firebaseInstance) {
app.initializeApp(firebaseConfig);
this.auth = app.auth();
this.db = app.firestore();
this.functions = app.functions();
this.storage = app.storage();
this.googleProvider = new app.auth.GoogleAuthProvider()
this.facebookProvider = new app.auth.FacebookAuthProvider()
this.increment = new app.firestore.FieldValue.increment(1)
}
}
非常感谢
我很可能会走客户端路线。这样你就可以在客户端上拥有firestore的所有其他优势,比如流式API等等。把这些东西隐藏在REST API或其他东西后面可能也可以,但最终你很可能想使用firestore客户端来做其他事情。
所以一如既往,这取决于情况。在不知道自己在创造什么的情况下,这无论如何都是一个棘手的问题。
但让我给你举个例子:
如果您正在开发移动业务应用程序,并且希望实时更新当前股票报价。您需要客户端使其易于编写代码。
如果你有一个游戏,你只需要更新一个分数,也许只需要再做一些与数据库相关的事情,我会开始考虑在RESTful服务或其他东西后面编码数据库更新。