我已经检查了类SyncUser,方法currentUser()的定义是:返回当前登录的用户,仍然有效。

我想知道的是,执行此方法时到底提供了什么?交付的价值有多可靠?关于“当前用户”的定义有什么限制?

感谢您提供任何信息!

最佳答案

SyncUser.currentUser()只是一种方便的方法,用于检索使用SyncUser.login()SyncUser.loginAsync()在该特定设备上登录的单个SyncUser。它仅在单个用户登录时有效,否则,您需要使用SyncUser.allUsers()

重新启动应用程序时通常需要这样做。然后,您可以检查SyncUser是否已经存在,因此不需要它们再次登录。在设备离线且无法登录的情况下,这很有用。

SyncUser由所谓的访问令牌表示,其默认生存期为10年,因此在此上下文中有效仅表示“由服务器授予的尚未过期的访问令牌”。

当然,该信息不能在客户端上完全验证,例如,如果服务器从丢失了有关特定令牌的信息的备份中恢复,则客户端可能认为该令牌有效,而服务器将拒绝该令牌。在这种情况下,您将在SyncConfiguration.Builder.errorHandler(..)上收到一个回调,其中包含一个事件,您可以对其做出反应并再次登录用户。

您可以在下面的示例中看到实践中的示例:https://github.com/realm/realm-java/tree/master/examples/objectServerExample

关于android - Realm -.currentUser()是传递在移动设备上登录的电流还是向其提供其他含义?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47577701/

10-08 21:09