android - 如何添加 Firebase 对象/节点+子树修改时的时间戳?

标签 android firebase firebase-realtime-database

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

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/

相关文章:

android - ConstraintLayout ListView RTL 有些行不是RTL

javascript - 向 firebase 生成的 key 内的子项添加监听器?

javascript - React fetch Firebase 获取唯一键值

ios - 检查 ios 设备是否被阻止

json - 我们可以将电子邮件 ID 作为 Firebase 数据库中的键吗?

javascript - Firebase Cloud Functions Http 请求 - 验证用户

java - 重复图层列表中的颜色背景

android - 如何合并图库中每个图像的按钮?

android - 从互联网上获取图像

java - 对于Firestore需要添加哪些依赖项来编写Java代码?