我试图查询firebase数据库以检查用户是否存在,我可以将其登录。但是,一个奇怪的问题完全阻止了我:
查询代码
String email = emailEditText.getText().toString();
String password = emailEditText.getText().toString();
fbUsers.orderByChild("email").equalTo(email).limitToFirst(1).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
HashMap<String, User> usersHashMap = (HashMap<String, User>) dataSnapshot.getValue();
Map.Entry<String, User> firstEntry = usersHashMap.entrySet().iterator().next();
User foundUser = firstEntry.getValue();
Log.d("Login: ", foundUser.getEmail());
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
用户类
public class User {
private String email;
private String password;
User() {}
public User(String email, String password) {
this.email = email;
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
奇怪的问题是编译器说ALL OK
但是,在运行时环境中,Log.d()
抛出了这个异常
java.lang.ClassCastException:java.util.HashMap无法强制转换为 com.example.project.User
答案 0 :(得分:1)
此代码使用db.Car_Dealership.find("this.Totalfleetunits.replace(',','') >= 1000").count()
获取单个查询结果的快照。
getChildren().iterator().next()
答案 1 :(得分:-2)
您是否尝试过调用getValue(User.class)?