【发布时间】:2018-04-03 06:09:20
【问题描述】:
我有几个编辑文本,两个时间选择器和两个日期选择器,所有这些都受到限制(时间和日期选择器)。两个时间和日期选择器用于 Cat 时间和日期,另外两个用于 Dog 时间和日期。开始使用 Firebase 并且一切正常,如果我从编辑文本和时间和日期选择器发送数据,则数据存储得很好。
这就是我的 Firebase 实时数据的外观:
正如您所看到的,每次我添加另一组数据(例如:userName、userTime、userData)时,它都会存储在用户子项中,并且根据选择的按钮,它会存储在 Dog 或 Cats 子项中,当然还有每组数据都带有一个用户 ID。 问题是我不知道如何检查用户选择的时间和日期是否与我数据库中的时间和日期相同。我试过了,但每次都没有成功。
public void UserInput () {
String phone = phoneNumber.getText().toString().trim();
String consult = consultationMotiv.getText().toString().trim();
String timpePick = pickTimeTextView.getText().toString().trim();
String datePick = pickDateTextView.getText().toString().trim();
String fullName = name.getText().toString().trim();
String group = allAnimals.getText().toString().trim();
final String id = mDatabaseReference.push().getKey();
final User user = new User(id, fullName, datePick, timpePick, consult, phone, group);
为了根据用户选择的时间选择器存储数据,我放置了一个文本视图,该视图将根据选择的日期和时间选择器获取数据。 例如:如果用户选择了 Dog 时间和日期选择器,textview 将存储数据“Dogs”,如果他们点击 Cat 时间和日期选择器,它将存储“Cats”
if (allAnimals.getText().equals("Dogs")) {
// send to userGroup DogCats
mDatabaseReference.child("users").child("Dog").
addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
Toast.makeText(getApplicationContext(), "Exists", Toast.LENGTH_SHORT).show();
mDatabaseReference.child("users").child("Dog").child(id).setValue(user);
} else {
Toast.makeText(getApplicationContext(), "Select another hour", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
但即使所有数据都相同,数据仍然会做广告。我尝试这样做:
mDatabaseReference.child("users").child("Dog").equalTo(timpePick + datePick).
addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
Toast.makeText(getApplicationContext(), "Exists", Toast.LENGTH_SHORT).show();
mDatabaseReference.child("users").child("Dog").child(id).setValue(user);
} else {
Toast.makeText(getApplicationContext(), "Select another hour", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
但是数据根本没有添加,即使我更改了小时和时间,我最终也会得到“选择另一个小时”的祝酒词。 提前致谢!
【问题讨论】:
标签: android firebase firebase-realtime-database