上下文
在我的注册/登录活动中,用户可以匿名身份验证,并且我将它们以FirebaseID作为主键存储在我的数据库中。
这是代码:
Exception in thread "main" java.lang.StackOverflowError
at com.sun.naming.internal.VersionHelper12$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.naming.internal.VersionHelper12.getJndiProperties(Unknown Source)
at com.sun.naming.internal.ResourceManager.getInitialEnvironment(Unknown Source)
at javax.naming.InitialContext.init(Unknown Source)
at javax.naming.InitialContext.<init>(Unknown Source)
at net.citigroup.mexico.pg.pgs.mock.MockLocalContext.<init>(MockLocalContext.java:97)
at net.citigroup.mexico.pg.pgs.mock.MockLocalContext.<init>(MockLocalContext.java:95)
at net.citigroup.mexico.pg.pgs.mock.MockLocalContext$3$1.getInitialContext(MockLocalContext.java:400)
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.init(Unknown Source)
at javax.naming.InitialContext.<init>(Unknown Source)
at net.citigroup.mexico.pg.pgs.mock.MockLocalContext.<init>(MockLocalContext.java:97)
at net.citigroup.mexico.pg.pgs.mock.MockLocalContext.<init>(MockLocalContext.java:95)
at net.citigroup.mexico.pg.pgs.mock.MockLocalContext$3$1.getInitialContext(MockLocalContext.java:400)
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.init(Unknown Source)
at javax.naming.InitialContext.<init>(Unknown Source)
at net.citigroup.mexico.pg.pgs.mock.MockLocalContext.<init>(MockLocalContext.java:97)
at net.citigroup.mexico.pg.pgs.mock.MockLocalContext.<init>(MockLocalContext.java:95)
at net.citigroup.mexico.pg.pgs.mock.MockLocalContext$3$1.getInitialContext(MockLocalContext.java:400)
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.init(Unknown Source)
at javax.naming.InitialContext.<init>(Unknown Source)
如果我的用户注销,然后如果他们想以匿名身份登录,它将创建另一个帐户,并且他们将无法检索其先前的匿名帐户。我如何才能检索其旧的匿名帐户及其数据?非常感谢
答案 0 :(得分:1)
仅当您退出登录,直接从Firebase控制台删除用户帐户或卸载应用程序时,您的发言才会发生。因此,您可以使用Firebase匿名身份验证来创建和使用临时匿名帐户来通过Firebase进行身份验证,但是anonymous authentication accounts
不会在应用程序卸载期间持续存在。卸载应用程序后,将删除所有在本地保存的内容,包括标识该帐户的匿名auth token
。 不幸的是,没有简单的方法可以为用户回收该令牌。
相反,您应该鼓励所有用户使用受支持的帐户提供商(Google
,Fabcebook
,Twitter
等)完全登录,以便他们可以从所有帐户登录他们的设备而不必担心丢失数据。