如何为修改 Firebase object/node+ 子树时添加时间戳?

How to add a timestamp for when the Firebase object/node+subtree was modified?

我想创建一个字段来存储上次更改对象的时间戳。因此,如果修改了对象的任何属性(也称为子树),则能够将时间戳字段设置为当前时间。

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

当数据写入用户节点时,更新 timestamps node:

// iOS / ObjectiveC

Firebase *usersTimeStampsRef = [timeStampsRef childByAppendingValue:"users"];

[usersTimeStampsRef setValue:kFirebaseServerValueTimestamp];


// Android / Java

Firebase usersTimeStampsRef = usersTimeStampsRef.child("users");

usersTimeStampsRef.setValue(ServerValue.TIMESTAMP);

(你也可以使用 timestamps/users)

或者,花点心思,将时间戳保留在节点本身内

root
   users
     timestamp: a timestamp
     user_list
       user_1
       user_2

我有一些 ObjC 对象是 class 处理数据读写的对象,它们在修改时自动更新时间戳。

例如,我有一个用户 class。

User aUser = [UserClass new]
[aUser createUser:"Jay"]

当调用 createUser 方法时,在 class 中设置用户并写出用户名并相应地更新时间戳。它非常无缝且维护成本低。

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