Firebase Android使用日期作为唯一ID保存数据

时间:2018-02-06 12:00:53

标签: java android firebase firebase-realtime-database

我尝试使用日期作为unqiue id保存用户详细信息。我在另一个页面上的日历视图中显示了日期。

I'm displaying the date on top which Ii get from a calendar view on another page.

我想知道我是否可以将日期作为唯一ID来保存其中的其他数据,并且还可以在时间到来时使用它来读取它。

目前,要使用此代码编写数据:

String id =databaseWorkouts.push().getKey();
Workout workout = new Workout(id, name, category );
databaseWorkouts.child(id).setValue(workout);

谢谢,

2 个答案:

答案 0 :(得分:1)

我在您的代码中看到的是您正在使用push()方法生成该随机唯一键,然后您在引用中将其用于将Workout类的对象添加到数据库中。您并且不使用日期作为标识符。使用push()方法是Firebase的常见做法。此方法提供的随机生成密钥基于时间。所以,没有必要以任何方式改变它。

答案 1 :(得分:0)

按日期推动每项训练非常容易。

String id =databaseWorkouts.push().getKey();
Workout workout = new Workout(id, name, category );
databaseWorkouts.child("2018-02-06").child(id).setValue(workout);

您需要计算日期,因此请将此视为一个示例。

但是使用此数据结构,您只能查询特定日期的锻炼。如果要查询所有日期的锻炼,则此数据库结构不再允许它。

作为旁注:没有必要将密钥存储在Workout中,因为它已在数据库中可用。要仅保留密钥一次,并且仍然可以在Workout对象中使用密钥,请参阅Is there a way to store Key in class which I cast from Firebase object?