在离线模式下工作时有一个很好的Firestore
功能:
Cloud Firestore 支持离线数据持久化。此功能会缓存您的应用正在使用的 Cloud Firestore 数据的副本,以便您的应用可以在设备离线时访问这些数据。您可以写入、读取、监听和查询缓存的数据。当设备重新上线时,Cloud Firestore 会将您的应用所做的任何本地更改同步到 Cloud Firestore 后端。
但我真正需要的是同一件事:一旦用户以任何方式(匿名或使用某些提供商)登录,他们创建的所有数据都会上传到 Firestore。
我问这个问题是因为假设匿名登录失败或任何登录失败,并且我需要 UID 将用户与其数据连接起来。我想这是一个现实的场景,可能非常罕见,但它有可能发生。
Firebase API 中有什么东西可以解决这个问题吗?
如果您尝试在 Firestore 中存储每个用户的数据,那么您肯定需要一个 UID 才能以对该用户有意义的路径收集该数据。如果没有它,您就无法合理地编写每用户数据。
如果您允许用户在不先登录的情况下使用您的应用程序,那么使用匿名身份验证以静默方式自动登录他们是有意义的。这将创建一个带有 UID 的帐户,您可以使用该 UID 将文档写入 Firestore。
当需要使用您选择的任何真实用户身份验证提供商登录用户时,您可以通过将匿名帐户链接到身份验证提供商来升级匿名帐户。Firestore 中的所有现有数据将不受影响。