gpt4 book ai didi

firebase - 如何使用Firebase获取“移动查询”

转载 作者:行者123 更新时间:2023-12-01 22:20:27 25 4
gpt4 key购买 nike

我有以timestamps作为ID存储的数据。我只需要在数据通过where查询子句时获取新数据。数据在名为day的键中也具有相同的时间戳。
该代码是用Golang编写的,但是从第一次调用该函数起,它仅使用静态时间戳获取数据。如何通过moves查询获取最新数据?
询问


snapshots := org.firestoreClient.Collection(
fmt.Sprintf("metrics/%v/%v", "id", "data-collectioin"),
).Where("day", ">=", time.Now().UTC().Add(time.Duration(-7) * time.Hour * 24))
.Snapshots(context.Background())

// Listening loop does not terminate
for {
snapshot, err := snapshots.Next()
if err == iterator.Done {
break
}
if err != nil {
log.Println(err)
continue
}

var decodingErr error
// Doc Iterating loop terminates at the last document
for {
store, vErr := snapshot.Documents.Next()
if vErr != nil {
break
}
// unmarshal data to result struct
// ....
// check for old data
if result.Day.UTC().Before(time.Now().UTC().Add(time.Duration(-7) * time.Hour * 24)) {
log.Println("has old data")
continue
}
// save to cache
addToSlice()
}
saveToCache(slice)
}

我希望每24小时获得新数据,然后运行此查询的服务器将获得新数据。并将数据保存到缓存
也许我的理解是错误的,但是运行此查询14天后,缓存存储中将包含14天之前的数据,而不仅仅是过去7天的数据。我只想获取过去7天的数据。 if (old-data) continue会跳过旧数据,但数据集很大,并且鉴于我只需要通过初始查询(绝对)的条目,这将跳过很多我不需要的数据
Output
day 0:

day 1:
has old data
day 2:
has old data
has old data
day 3:
has old data
has old data
has old data

最佳答案

Firestore没有任何动态参数或类似参数。如果要请求新时间戳的数据,则必须使用新时间戳运行新查询。
因此,大多数应用程序都运行定期查询以清理过期的数据。

关于firebase - 如何使用Firebase获取“移动查询”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63879981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com