gpt4 book ai didi

node.js - 谷歌云发布/订阅功能在查询 firestore 时给出 "The requested snapshot version is too old"

转载 作者:行者123 更新时间:2023-12-01 23:43:04 26 4
gpt4 key购买 nike

我有一个 gcloud 发布/子函数,可以对集合执行简单查询。它在 10 月 8 日之前运行良好。现在我看到“请求的快照版本太旧”错误消息。

我用相同的代码创建了一个 HTTP 函数并手动运行它,它工作得很好。

函数如下:

// 0 3 * * * - at 03:00 AM every day
exports.GenerateRankings = functions.pubsub.schedule('0 3 * * *')
.onRun((context) => {

console.log("GenerateRankings Task started")

const playersCollection = admin.firestore().collection('players')

playersCollection.orderBy("Coin", "desc").get()
.then((qs) => {
console.log("Fetching Players by Coin")
// some staff
return true
})
.catch((error) => {
console.error("Error fetching players", error)
return false
})
})

这里是错误堆栈:

9 FAILED_PRECONDITION: The requested snapshot version is too old.
at Object.callErrorFromStatus (/workspace/node_modules/@grpc/grpc-js/build/src/call.js:31:26)
at Object.onReceiveStatus (/workspace/node_modules/@grpc/grpc-js/build/src/client.js:327:49)
at Object.onReceiveStatus (/workspace/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:305:181)
at /workspace/node_modules/@grpc/grpc-js/build/src/call-stream.js:124:78
at processTicksAndRejections (internal/process/task_queues.js:79:11)
Caused by: Error
at Query._get (/workspace/node_modules/@google-cloud/firestore/build/src/reference.js:1466:23)
at Query.get (/workspace/node_modules/@google-cloud/firestore/build/src/reference.js:1455:21)
at /workspace/index.js:22:47
at cloudFunction (/workspace/node_modules/firebase-functions/lib/cloud-functions.js:130:23)
at /layers/google.nodejs.functions-framework/functions-framework/node_modules/@google-cloud/functions-framework/build/src/invoker.js:198:28
at processTicksAndRejections (internal/process/task_queues.js:97:5) {
code: 9,
details: 'The requested snapshot version is too old.',
metadata: Metadata { internalRepr: Map {}, options: {} }
}

我知道还有一个 Unresolved 问题 "The requested snapshot version is too old." error in Firestore类似于此。我在发布/子功能方面遇到了这个问题。

感谢您的帮助。

最佳答案

如果有人遇到这个问题,我会回答我自己的问题。

经过大量阅读和测试后,我注意到我的日志中有一条警告,如“函数返回未定义、预期的 Promise 或值”。因为我在我的函数中返回了一个 promise ,所以我没有注意这一点。

在我的函数之上添加一个 return 修复了我的警告,并且我的函数已经成功运行了 5 天。

return exports.GenerateRankings = functions.pubsub.schedule('0 3 * * *') ...

关于node.js - 谷歌云发布/订阅功能在查询 firestore 时给出 "The requested snapshot version is too old",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64712587/

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