繁体   English   中英

如何等待 Firestore 索引部署?

[英]How to wait for Firestore indexes to deploy?

提示:本站为国内最大中英文翻译问答网站,提供中英文对照查看,鼠标放在中文字句上可显示英文原文

使用firebase deploy时,索引部署阶段会自动完成,但索引可能需要很长时间(10 分钟以上)才能真正准备好使用。

在继续推送依赖于索引的代码之前,如何让我的部署脚本等待索引实际准备就绪?

gcloud命令将显示正在进行的操作:

$ gcloud firestore operations list --format=json --filter="done:false"
[
  {
    "metadata": {
    "@type": "type.googleapis.com/google.firestore.admin.v1.IndexOperationMetadata",
      "index": "projects/foo/databases/(default)/collectionGroups/bar/indexes/CICAgJiljJcK",
      "progressDocuments": {
        "estimatedWork": "1133"
      },
      "startTime": "2023-01-18T16:05:43.603428Z",
      "state": "INITIALIZING"
    },
    "name": "projects/foo/databases/(default)/operations/S2NKamxpSmdBQ0lDDCoDIGI5ZjRjOWNiYTc0MC05MDlhLWJhYzQtM2M5MC1jMjQwMmI3NCQadGx1YWZlZAcSMXJoLXJleGVkbmktbmltZGERClIS"
  }
]

当没有任何进展时,它将返回[] 我们可以编写一个 bash 脚本来等待它:

starttime=$(date +"%s")
nowtime=$(date +"%s")
    
# Run for up to 30 minutes (1800 seconds)
while [[ $(( $nowtime - $starttime )) -le 1800 ]]
do
    response=$(gcloud --project=column-sam firestore operations list --format=json --filter="done:false")
    if [ "$response" == "[]" ]; then
      echo "Finished"
      exit 0
    fi
    
    echo "[$nowtime] Indexes still building, waiting 10 seconds"
    sleep 10
    nowtime=$(date +"%s")
done
    
echo "[$nowtime] Timed out waiting for indexes to build!"
exit 1
问题未解决?试试搜索: 如何等待 Firestore 索引部署?
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2023 STACKOOM.COM