如何使用 gRPC 调用 Firestore
How to make a call to Firestore using gRPC
我正在尝试在 Elixir 中为 Google 的 Firestore API 构建一个 gRPC 客户端。
在开始编写一些代码之前,我认为首先使用 BloomRPC 来调试问题是明智的。
作为基础 url,我正在使用 https://firestore.googleapis.com 固定 rot 证书的地方。
作为 auth,我使用的是通过 oauth 获得的 access_token,具有以下 2 个范围:“https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/datastore”
作为授权传递 header:
{
"Authorization": "Bearer 29ya.a0AfH6SMBDYZPsVgQv0PMqyGRXypc3DfWF_2jbvAJKMquTaryCvxEB7X1Rbprfk1Ebrwid2bXbcR3Aw-d1Tytlo_lThkyqRDRIbnSz5-nQ3xWklkmjyFMAuQtFCoz01hk3vbgBwd2gdbFNNWiOU_8NqPC_vElyz2-cQ34"
}
我回来了:
{
"error": "3 INVALID_ARGUMENT: Missing required project ID."
}
很明显我应该以某种方式传递项目 ID,但我在文档中的任何地方都找不到它。有人有线索吗?
我刚刚弄清楚我做错了什么。
基本上我使用的 Bearer
令牌是正确的(通过 OAuth Playground 获得)。
诀窍是在请求的 parent
参数中指定 PROJECT_ID:
{
"parent": "projects/[project-id]/databases/(default)/documents",
"page_size": 10
}
我应该刚刚正确阅读 docs:)
我正在尝试在 Elixir 中为 Google 的 Firestore API 构建一个 gRPC 客户端。
在开始编写一些代码之前,我认为首先使用 BloomRPC 来调试问题是明智的。
作为基础 url,我正在使用 https://firestore.googleapis.com 固定 rot 证书的地方。
作为 auth,我使用的是通过 oauth 获得的 access_token,具有以下 2 个范围:“https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/datastore” 作为授权传递 header:
{
"Authorization": "Bearer 29ya.a0AfH6SMBDYZPsVgQv0PMqyGRXypc3DfWF_2jbvAJKMquTaryCvxEB7X1Rbprfk1Ebrwid2bXbcR3Aw-d1Tytlo_lThkyqRDRIbnSz5-nQ3xWklkmjyFMAuQtFCoz01hk3vbgBwd2gdbFNNWiOU_8NqPC_vElyz2-cQ34"
}
我回来了:
{
"error": "3 INVALID_ARGUMENT: Missing required project ID."
}
很明显我应该以某种方式传递项目 ID,但我在文档中的任何地方都找不到它。有人有线索吗?
我刚刚弄清楚我做错了什么。
基本上我使用的 Bearer
令牌是正确的(通过 OAuth Playground 获得)。
诀窍是在请求的 parent
参数中指定 PROJECT_ID:
{
"parent": "projects/[project-id]/databases/(default)/documents",
"page_size": 10
}
我应该刚刚正确阅读 docs:)