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

Java Firebase Android使用日期作为唯一id保存数据,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我正在尝试使用日期作为unqiue id保存用户详细信息。我正在顶部显示我从另一页的日历视图中获得的日期 我想知道是否可以使用日期作为唯一的id来保存其中的其他数据,并在时间到来时使用它来读取数据 目前,要编写数据,我使用以下代码: String id =databaseWorkouts.push().getKey(); Workout workout = new Workout(id, name, category ); databaseWorkouts.child(id).setValue

我正在尝试使用日期作为unqiue id保存用户详细信息。我正在顶部显示我从另一页的日历视图中获得的日期

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

目前,要编写数据,我使用以下代码:

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

谢谢,

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

很容易将每次训练都推到日期之下

String id =databaseWorkouts.push().getKey();
Workout workout = new Workout(id, name, category );
databaseWorkouts.child("2018-02-06").child(id).setValue(workout);
<>你想计算日期,所以考虑这只是一个例子。

但使用此数据结构,您只能查询特定日期的训练。如果您希望查询所有日期的训练,此数据库结构将不再允许查询


作为旁注:无需将钥匙存储在
训练中,因为它已在数据库中可用。要仅保留一次钥匙,并且钥匙仍然可以在您的
训练对象中使用,请参阅。

使用-
数据库workouts.child(“训练”).child(您的约会)
?谢谢大家,我使用了多种不同的答案来解决这个问题