Google Cloud Firestore即将取代旧版Google Cloud Datastore。然后,可以选择在“本机模式”或“数据存储模式”下使用Cloud Firestore。前者允许通过常规的Firestore SDK访问Firestore,而后者则允许使用旧的Cloud Datastore SDK(不包含Web /移动API)。
我还不熟悉Firestore。我的问题是:除了将内容移植到新的API之外,实际上还有任何在“本机模式”下使用Firestore无法完成的事情,这可以通过旧的Cloud Datastore(或其替代:在“数据存储模式”下使用Firestore完成) )?还是使用“数据存储模式”的其他优势(例如成本)?
如果没有,那么除了使用旧的Cloud Datastore兼容旧代码外,似乎在“数据存储模式”下使用Firestore实际上没有任何优势。
我的假设是,Firestore“数据存储模式”除了能够使用传统的Datastore API外,绝对没有任何优势(以 not 为代价,无法使用更新的甚至更多的API)功能丰富的Firestore API(包括移动和Web API)?
答案 0 :(得分:4)
费用。
数据存储区模式下的Firestore与原始数据存储区一样,仅支持键查询和投影查询。这意味着这些查询的结果集计入免费的“ Cloud Firestore小型操作”中。 我们每天会累积数十亿次这样的小规模操作,而没有投影查询将实际上使我们的数据存储成本增加10倍,这是无法承受的。
由于此功能在Firestore纯模式中不可用-并且还添加了强大的一致性-我们希望它的性能要比原始数据存储中的性能低,但在我们的测试中并非如此。在所有类型的操作中,数据存储模式下的Firestore始终能够为我们的应用程序带来大约两倍的速度。
答案 1 :(得分:1)
根据official documentation,尽管Cloud Firestore与Cloud Datastore向后兼容,但新的数据模型,实时更新以及移动和Web客户端库功能不兼容。
数据存储模式下的Cloud Firestore使用Cloud Datastore系统行为,但是访问Cloud Firestore的存储层,从而消除了以下Cloud Datastore限制:
数据存储区模式会禁用与Cloud Datastore不兼容的Cloud Firestore功能: