使用Firebase 3从FIRUser获取创建日期和上次登录日期

时间:2016-07-03 20:45:47

标签: ios swift firebase firebase-realtime-database firebase-authentication

我只想获得创建日期和使用firebase的用户的最后一次登录日期,我的计划是让用户使用Facebook登录,然后注册并添加新信息并将用户保存在实时数据库中创建日期和上次登录日期,以便如何在保存日期后保持日期与Firebase系统不同步,或者我应该只使用那些FIRUU并且不将它们保存在实时数据库中

enter image description here

问题1:如何从仪表板中显示的FIRUser获取创建和上次登录日期(参见附图)

问题2:一旦我收到这些日期,我会将它们保存在实时数据库中,那么如何保持最后一次登录日期同步?

4 个答案:

答案 0 :(得分:4)

从版本4.4.0开始,您可以从当前用户获取iOS中的最后一次登录时间和创建时间:https://firebase.google.com/support/release-notes/ios#4.4.0

Auth.auth().currentUser.metadata.lastSignInDate Auth.auth().currentUser.metadata.creationDate

答案 1 :(得分:1)

admin SDK可让您获得data(已创建元数据和最后一次登录)。但我不确定它是否应该在App中实现。

答案 2 :(得分:1)

FIRUserMetadata中,您可以找到两个属性:

creationDate

/** @property creationDate
    @brief Stores the creation date for the corresponding Firebase user.
 */
@property (copy, nonatomic, readonly, nullable) NSDate *creationDate;

使用

访问此属性
let creationDate = Auth.auth().currentUser?.metadata.creationDate

lastSingInDate

/** @property lastSignInDate
    @brief Stores the last sign in date for the corresponding Firebase user.
 */
@property (copy, nonatomic, readonly, nullable) NSDate *lastSignInDate;

使用此属性访问

let lastSignInDate = Auth.auth().currentUser?.metadata.lastSignInDate

答案 3 :(得分:0)

您可以像这样构建规则

{ 
  rules: { 
    users: {

     uid_01: {
       //You can also do regular expression of timestamp and add it to ".validate" rule
       lastLogin: { ".validate": "newData.isString()"   }     
       createdOn: { ".write": "!data.exists()" }
      }
    }
  } 
}

遵守上述规则将有助于您管理所要求的内容。 " createdOn"只会让你写一次价值。每当您创建新用户时,只需将日期写入" createdOn"并不断更新" lastLogin"加班他们登录!!