firebase - Firestore 的 `get()` 是否算作 1 个文档读取?
问题描述
我正在我的应用程序中构建用户对用户的聊天,所以我有点担心 Firestore 的定价。我正在寻找构建数据库的最佳方法,因为我不确定将来是否可以更改它。是否get()
算作一次阅读,或者它会为每条消息收取不同的阅读费用?
这就是我所做的,我希望这是最好的方法:
// Set the user's IDs
var userA = 1
var userB = 2
// Naming the conversation
var conversation = (userA < userB ? userA + '_' + userB : userB + '_' + userA)
// Initialize Firebase
firebase.initializeApp()
// Initialize Firestore
var db = firebase.firestore()
// INSERT conversation name to the conversations list of each user
db.collection('users/' + userA + '/conversations').doc(conversation).set({})
db.collection('users/' + userB + '/conversations').doc(conversation).set({})
// SELECT conversations list for userA
db.collection('users/' + userA + '/conversations').get().then((response) => {
response.forEach((document) => {
console.log(document.id)
})
})
// SELECT conversations list for userB
db.collection('users/' + userB + '/conversations').get().then((response) => {
response.forEach((document) => {
console.log(document.id)
})
})
// INSERT message "Hello" from userA
db.collection('conversations/' + conversation + '/messages').add({
time: firebase.firestore.Timestamp.fromDate(new Date()).seconds,
user: userA,
text: 'Hello'
})
// INSERT message "World" from userB
db.collection('conversations/' + conversation + '/messages').add({
time: firebase.firestore.Timestamp.fromDate(new Date()).seconds,
user: userB,
text: 'World'
})
// SELECT messages from conversation
db.collection('conversations/' + conversation + '/messages').get().then((response) => {
response.forEach((document) => {
console.log(document.id + ': ' + JSON.stringify(document.data()))
})
})
解决方案
当您调用get()
集合引用或查询时,该查询匹配的每个文档都需要读取一次。当您调用get()
文档参考时,该文档将花费一次阅读。计费是关于阅读文件的数量,而不是你打电话的次数get()
。
推荐阅读
- r - 如何在太多循环中加速应用函数
- laravel - 发现“--routePrefix”选项不存在错误
- android - 加载 gif 出现时如何进行模糊活动?
- python - 这行代码如何允许 [end=" "] 在字母之间应用?
- powershell - 有没有办法在互联网丢失时禁用和启用网络连接
- sql - sql join没有从另一个表中获取所有记录
- java - @GetMapping 和 RSocketServer 与 spring-boot-starter-rsocket
- c - 如何以 1000000007 为模得到结果 2^100 * 3^3
- scala - 使用无形获取scala中参数化类的名称
- php - 是否为网页上下载的每个文件加载 cookie?