【发布时间】:2021-05-12 22:57:38
【问题描述】:
我正在创建一个使用带有 ID 和密码的数字的系统。我想对比一下edittext中输入的数据是否与firebase实时数据库中存储的数据相匹配。
firebase 结构:
"password" : {
12345 : 1111,
54321 : 2222
}
12345 和 54321 是 ID,1111 和 2222 是密码。
java代码:
@Override
public void onClick(View view) {
FirebaseDatabase.getInstance().getReference().addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
String server_data_User = dataSnapshot.child("password").getKey();
Log.d("PWActivity", "ValueEventListener : " + server_data_User);
String server_data_PW = dataSnapshot.child("password").getValue(String.class);
Log.d("PWActivity", "ValueEventListener : " + server_data_PW);
String EditText_user = editText.getText().toString();
String server_user = server_data_User;
String EditText_pw = editText.getText().toString();
String server_pw = server_data_PW;
if (EditText_user.equals(server_user) && EditText_pw.equals(server_pw))
{
Intent intent = new Intent(PWActivity.this, SubActivity.class);
startActivity(intent);
} else {
textView.setText("incorrect");
editText.setText("");
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
例如,如果我输入 12345 和 1111,这些数字与 Firebase 实时数据库中的数据相同,因此必须转到下一个屏幕。但即使我输入了正确的数据,它也会回到第一个屏幕。我想知道如何解决这个问题,或者如何将输入的数据与 firebase 中的数据进行对比。 我试图自己解决,但不幸的是我失败了......我希望你帮我解决这个问题......
【问题讨论】:
标签: android firebase firebase-realtime-database