GCP Firestore API 不适用于 Cloud Datastore 项目

问题描述 投票:0回答:5

我尝试使用 GCP 文件存储,按照产品网站中的简单快速示例进行操作,但收到错误:“google.api_core.exceptions.FailedPrecondition: 400 Cloud Firestore API 不适用于 Cloud Datastore 项目。”

我之前确实在同一个项目中使用过数据存储,然后我在项目中禁用了数据存储 api 并尝试了示例,仍然得到相同的错误,除了创建一个新项目之外,任何人都可以建议做什么?

google-cloud-firestore google-cloud-datastore
5个回答
10
投票

如果您有一个空的 Cloud Datastore 数据库并且从未对数据库执行过写入操作,则可以通过单击“数据存储/实体”页面上的“升级到 FIRESTORE”按钮,以数据存储模式或本机模式升级到 Cloud Firestore .

如果您没有收到该选项,那么您的数据库实例将在未来自动升级(链接)。如果您在数据存储模式下从 Cloud Datastore 升级到 Cloud Firestore 或从数据存储模式升级到本机模式,则无法撤消该操作。

这里是文档的链接:https://cloud.google.com/datastore/docs/upgrade-to-firestore


7
投票

我有

The Cloud Firestore API is not available for Datastore Mode projects
和一个空的 Firestore。

我已经通过以下步骤解决了错误:

  1. 在网络浏览器中打开 Firestore。
  2. 创建至少一个集合。

遗憾的是,正如您在本例中看到的那样,Google 错误消息毫无用处。


1
投票

我也遇到了同样的问题,解决方案是评论该行

.setProjectId(projectId)

此示例适用于位于另一个 GCP 项目中的本机 Firestore 实例

GoogleCredentials credentials = GoogleCredentials.fromStream(new ClassPathResource("/test-firebase.json").getInputStream());

FirebaseOptions options = new FirebaseOptions.Builder()
    .setCredentials(credentials)
    //.setProjectId(projectId)
    .setDatabaseUrl("https://document-db.firebaseio.com/")
    .build();

if (FirebaseApp.getApps().isEmpty()) {
  FirebaseApp.initializeApp(options);
}

Firestore db = FirestoreClient.getFirestore();
DocumentReference docRef = db.collection("document-db").document("alovelace");
// Add document data with id "alovelace" using a hashmap
Map<String, Object> data = new HashMap<>();
data.put("first", "Ada");
data.put("last", "Lovelace");
data.put("born", 1815);
// asynchronously write data
ApiFuture<WriteResult> result = docRef.set(data);

0
投票

嗯,您很可能在数据存储模式下使用 firestore,因此,您需要将其更改为本机模式,以便从终端进行更改。只需切换到本机模式,它应该可以正常工作。


0
投票

好的,这是我的决定:

  1. 打开 Google Cloud Console 数据库:https://console.cloud.google.com/datastore/databases
  2. 选择您正在使用的数据库,在我的例子中是“(默认)”数据库 enter image description here
  3. 单击(默认)-> 您将看到“切换到本机模式”按钮-> 单击它,完成! enter image description here
© www.soinside.com 2019 - 2024. All rights reserved.