使用打字稿的云功能查询
Cloud function query with typescript
我正在尝试查询一个 firestore 字段(下拉列表)'Title'。我正在使用以下代码获取给定用户的 Title 总数,但我想应用过滤器并仅在 Title == Game 时获取计数。请帮忙。如何修改此功能以仅在满足此条件时设置计数器。
目前正在获取标题编号。
import * as admin from 'firebase-admin'
import * as functions from 'firebase-functions'
admin.initializeApp()
export const updateCharts =
functions.firestore.document('users/{UserId}/count/{uid}')
.onWrite(async(change, _) => await updateStats(change))
async function updateStats (change:
functions.Change<functions.firestore.DocumentSnapshot>){
const chartRating = change.after.ref.parent
let Title = 0
const docRefs = await chartRating.listDocuments()
for (const docRef of docRefs) {
const snapshot = await docRef.get()
const data = snapshot.data()
if (data !== undefined) {
Title++
}
}
const restaurantRef = chartRating.parent!
console.log('{restaurantRef.path} now has ${Title}')
await restaurantRef.update({
Title: Title,
})
}
替换这个
let Title = 0
const docRefs = await chartRating.listDocuments()
for (const docRef of docRefs) {
const snapshot = await docRef.get()
const data = snapshot.data()
if (data !== undefined) {
Title++
}
}
和
let title = (await chartRating.where('Title', '==', 'Game').get()).size;
将 where 语句替换为您需要的条件。
我正在尝试查询一个 firestore 字段(下拉列表)'Title'。我正在使用以下代码获取给定用户的 Title 总数,但我想应用过滤器并仅在 Title == Game 时获取计数。请帮忙。如何修改此功能以仅在满足此条件时设置计数器。
目前正在获取标题编号。
import * as admin from 'firebase-admin'
import * as functions from 'firebase-functions'
admin.initializeApp()
export const updateCharts =
functions.firestore.document('users/{UserId}/count/{uid}')
.onWrite(async(change, _) => await updateStats(change))
async function updateStats (change:
functions.Change<functions.firestore.DocumentSnapshot>){
const chartRating = change.after.ref.parent
let Title = 0
const docRefs = await chartRating.listDocuments()
for (const docRef of docRefs) {
const snapshot = await docRef.get()
const data = snapshot.data()
if (data !== undefined) {
Title++
}
}
const restaurantRef = chartRating.parent!
console.log('{restaurantRef.path} now has ${Title}')
await restaurantRef.update({
Title: Title,
})
}
替换这个
let Title = 0
const docRefs = await chartRating.listDocuments()
for (const docRef of docRefs) {
const snapshot = await docRef.get()
const data = snapshot.data()
if (data !== undefined) {
Title++
}
}
和
let title = (await chartRating.where('Title', '==', 'Game').get()).size;
将 where 语句替换为您需要的条件。