我正在创建一个字段来存储对象上次更改的时间戳。因此,如果对象的任何属性(也称为子树)被修改,就能够将时间戳字段设置为当前时间。
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
当数据写入users节点时,更新timestamps node :
// iOS / ObjectiveC
Firebase *usersTimeStampsRef = [timeStampsRef childByAppendingValue:"users"];
[usersTimeStampsRef setValue:kFirebaseServerValueTimestamp];
// Android / Java
Firebase usersTimeStampsRef = usersTimeStampsRef.child("users");
usersTimeStampsRef.setValue(ServerValue.TIMESTAMP);
(您也可以只使用时间戳/用户)
或者,更有趣的是,将时间戳保留在节点本身内
root
users
timestamp: a timestamp
user_list
user_1
user_2
我有许多 ObjC 对象,它们是类对象,用于处理数据的读取和写入,并且它们在修改时自动更新时间戳。
例如,我有一个用户类。
User aUser = [UserClass new]
[aUser createUser:"Jay"]
当调用 createUser 方法时,它会在类内部设置用户并写出 userName 并相应地更新时间戳。它非常无缝且维护成本低。
实际上,我创建的父类负责时间戳的繁重工作和写入,因此与 Firebase 交互的所有子类都会继承该功能。
关于android - 如何添加 Firebase 对象/节点+子树修改时的时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35236105/