Dod*_*odo 1 javascript firebase angularfire2 google-cloud-firestore
用户注销后,我需要完全清除当前用户数据。因此我使用clearPersistence()函数。它需要在clearPersistence()之前运行terminate()。
this.afs.firestore.terminate().then(() => {
this.afs.firestore.clearPersistence().then(() => {
});
});
Run Code Online (Sandbox Code Playgroud)
在上面运行以下命令以清除 firestore 本地缓存后,我收到此错误。
FirebaseError: The client has already been terminated.
有什么建议如何重新初始化 firestore 实例或有更好的方法来实现吗?谢谢。
这不是 的预期目的clearPersistence()。我建议仔细阅读API文档:
必须在 firestore 实例未启动时调用(应用程序关闭后或应用程序首次初始化时)。启动时,必须在其他方法(settings() 除外)之前调用此方法。如果 firestore 实例仍在运行,则 Promise 将被拒绝,错误代码为 failed-precondition。
注意:clearPersistence() 主要旨在帮助编写使用 Cloud Firestore 的可靠测试。它使用有效的机制来删除现有数据,但不会尝试安全地覆盖或以其他方式使缓存的数据无法恢复。对于对用户会话之间缓存数据的泄露敏感的应用程序,我们强烈建议根本不要启用持久性。
第二段告诉您,您可能根本不应该启用持久性。
第一段告诉您,在测试期间使用clearPersistence只能在Firestore应用程序实例首次初始化之后(并且在任何查询之前)或应用程序完全关闭之后立即完成。
| 归档时间: |
|
| 查看次数: |
2760 次 |
| 最近记录: |