数据存储模拟器 returns '在交易中只允许祖先查询'。它不支持 Datastore 模式下的 Firestore 吗?
Datastore emulator returns 'Only ancestor queries are allowed inside transactions’. Doesn't it support Firestore in Datastore mode?
我在本地 运行 我的应用程序使用 Datastore。
该应用程序使用 Java 编写并使用 Objectify。代码如下。
ofy().transact(() -> { ofy().load().type(PersonEntity.class).list(); })
当我的应用连接到我的 GCP 项目的数据存储时,这个简单的查询 运行 成功。
但是,当我使用 cloud-datastore-emulator 时,此查询被拒绝并显示错误消息 Only ancestor queries are allowed inside transactions
。
关于非祖先查询的限制seems to be removed on Firestore in Datastore mode。但是cloud-datastore-emulator好像还是限制了。
我的问题是,
- cloud-datastore-emulator 在 Datastore 模式下不支持 Firestore?
- 有什么方法可以在 Datastore 模式下模拟 Firestore?
gcloud SDK 版本:346.0.0
好吧,你的问题的答案是:它应该支持它,因为模拟器应该支持生产环境所做的一切。话虽如此,我确实在看到您的问题后仔细阅读了文档,发现 here 上面写着:
The Cloud SDK includes a local emulator of the production Datastore mode environment.
但如果您遵循 link,则有提示表明这是旧版 Datastore 和 Datastore 模式下的 Firestore 的模拟器。所以这可能就是您看到此行为的原因。有了这些信息,最好在 Google's Issue Tracker 中打开一个案例,这样他们的工程团队就可以澄清这是否是预期的行为,如果不是,请解决此问题。
我在本地 运行 我的应用程序使用 Datastore。 该应用程序使用 Java 编写并使用 Objectify。代码如下。
ofy().transact(() -> { ofy().load().type(PersonEntity.class).list(); })
当我的应用连接到我的 GCP 项目的数据存储时,这个简单的查询 运行 成功。
但是,当我使用 cloud-datastore-emulator 时,此查询被拒绝并显示错误消息 Only ancestor queries are allowed inside transactions
。
关于非祖先查询的限制seems to be removed on Firestore in Datastore mode。但是cloud-datastore-emulator好像还是限制了。
我的问题是,
- cloud-datastore-emulator 在 Datastore 模式下不支持 Firestore?
- 有什么方法可以在 Datastore 模式下模拟 Firestore?
gcloud SDK 版本:346.0.0
好吧,你的问题的答案是:它应该支持它,因为模拟器应该支持生产环境所做的一切。话虽如此,我确实在看到您的问题后仔细阅读了文档,发现 here 上面写着:
The Cloud SDK includes a local emulator of the production Datastore mode environment.
但如果您遵循 link,则有提示表明这是旧版 Datastore 和 Datastore 模式下的 Firestore 的模拟器。所以这可能就是您看到此行为的原因。有了这些信息,最好在 Google's Issue Tracker 中打开一个案例,这样他们的工程团队就可以澄清这是否是预期的行为,如果不是,请解决此问题。