我一直很好奇,但是建议在Firestore中的文档中保存一个id字段吗?由于我们已经在firestore中拥有唯一的documentId存储了?

此外,当使用电子邮件对用户进行身份验证时,结果将返回一个uid,并在在线教程中将其另存为用户文档中的字段。由于我们已经有了用户的documentId,我对为什么必须这样做感到困惑。

最佳答案

仅当文档ID满足您要使用该ID进行的查询时,才需要将其存储在文档中。在我看到的绝大多数时间中,根本不需要存储ID,或者充其量只是为了方便。

我唯一想到的是该ID在文档中必须存在的位置是,如果您在收集组查询期间正在查找具有特定ID的文档。由于这些类型的查询只能将普通字段值视为过滤器,因此您需要文档中的ID才能满足该查询。否则,这是不可能的(您不能在集合组查询中使用特殊的FieldPath.documentId() token )。

如果您使用某种形式的序列化技术将文档字段根据其名称自动映射到某些对象属性,则将文档ID放入文档中可能会很方便。大多数对象映射器都不知道如何找到文档ID,因为它通常不会出现在原始文档数据的字段映射中。但是在Android上,实际上现在可以使用相对较新的@DocumentId批注以及Firestore内置的POJO对象映射器。

我不知道本教程试图通过将文档ID放在字段中来实际实现什么,但实际上只是没有必要。您应该问作者为什么。

07-24 09:45
查看更多