Android 当Firebase对象/节点+子树被修改时,如何添加时间戳?

Android 当Firebase对象/节点+子树被修改时,如何添加时间戳?,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我希望创建一个字段来存储对象上次更改的时间戳。因此,如果对象的任何属性(即子树)被修改,则可以将时间戳字段设置为当前时间 Firebase似乎无法跟踪对象上次更新的时间。是否有人真正以优雅的方式实现了这一点?您可以轻松跟踪节点的修改时间 root users some user stuff messages some messages places_to_eat some places to eat timestamps users: a time

我希望创建一个字段来存储对象上次更改的时间戳。因此,如果对象的任何属性(即子树)被修改,则可以将时间戳字段设置为当前时间


Firebase似乎无法跟踪对象上次更新的时间。是否有人真正以优雅的方式实现了这一点?

您可以轻松跟踪节点的修改时间

root
  users
    some user stuff
  messages
    some messages
  places_to_eat
    some places to eat
  timestamps
    users: a timestamp
    messages: a timestamp
    places_to_eat: a timestamp
将数据写入用户节点时,更新:

您也可以使用时间戳/用户

或者,想象一下,将时间戳保留在节点本身内

root
   users
     timestamp: a timestamp
     user_list
       user_1
       user_2
我有许多ObjC对象,它们是用来处理数据读写的类对象,并且在修改时会自动更新时间戳

例如,我有一个用户类

User aUser = [UserClass new]
[aUser createUser:"Jay"]
当调用createUser方法时,它在类内部设置用户并写出用户名并相应地更新时间戳。这是非常无缝和低维护


实际上,我创建的父类负责时间戳的繁重工作和编写,因此与Firebase交互的所有子类都继承了该功能。

Nice,这正是我所想象的。只是有点惊讶,这似乎是唯一的办法。Firebase会将修改时间戳作为其本机实现的一部分进行跟踪,您介意共享您的代码吗?我已经找到了一种用单亲类实现的方法,但它并不像我想象的那么简单。首先,firebase URL和密钥必须在我的实现中通过超类进行跟踪。我一点也不介意——但是,这是MacOS ObjC代码,因此可能不适用。有很多方法可以做到这一点;您可以创建一个保持路径或路径引用的单例。或者,当创建一个子类时,使用“User”或“Message”类型初始化它。然后,要创建一个用户,初始化该对象,向它传递一个用户名,例如,用户类知道在/users节点中创建用户,并将/users/just\u created\u user\u id/timestamp子级更新为当前时间戳。同样,在更新用户名时,类也会更新时间戳。@Jay你能建议一种方法,让我跟踪对象是何时创建的而不是何时修改的吗?@EhteshamHasan跟踪对象是何时创建的是相同的模式,只需创建一个包含“created_timestamp:”子节点的对象字典,并在创建对象时写入时间戳。您可能会问一些更深入的问题,如果是这样的话,请创建一个新问题,包括详细信息、代码和Firebase结构。
User aUser = [UserClass new]
[aUser createUser:"Jay"]