【发布时间】:2022-02-06 23:49:27
【问题描述】:
我正在尝试从 firebase 实时数据库中检查 uid,但它只返回当前的 uid,当我尝试使用以前的 uid 检查 uid 时,它也只返回当前的 uid。我尝试了很多方法并进行了搜索,但我无法得到确切的解决方案,请任何人提供帮助。
这里是我用来检查 uid 的内容
FirebaseAuth.getInstance().getCurrentUser().getUid();
这是我尝试检查的代码
String userEnteredUserName = binding.textLoginUserName.getEditText().getText().toString().trim();
String userEnteredPassword = binding.textPassword.getEditText().getText().toString().trim();
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users");
Query checkUser = reference.child(FirebaseAuth.getInstance().getCurrentUser().getUid()).orderByChild("userName").equalTo(userEnteredUserName);
Log.d("uids", "uid: " + uid);
checkUser.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
binding.textLoginUserName.setError(null);
binding.textLoginUserName.setErrorEnabled(false);
Log.d("users", "Username: " + snapshot.toString());
if (snapshot.exists()) {
String passwordFromDB = snapshot.child(userEnteredUserName).child("password").getValue(String.class);
if (passwordFromDB.equals(userEnteredPassword)) {
//next activity
}else{
Toast.makeText(Login.this, "Error", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
Toast.makeText(Login.this, "Error", Toast.LENGTH_SHORT).show();
}
});
记录我得到的,
2022-02-06 13:13:06.173 18093-18093/abc C/uids: uid: OFtpR6bfISP3Odd9K1oGWCQmeEf2
这是我的 firebase 数据,“aisha12”在当前 uid 下工作,但是当我尝试检查“vgbb”时,它只返回当前 uid
【问题讨论】:
-
这段代码中到底有什么不符合您的预期?告诉我们共享代码有什么问题。你有什么错误吗?
-
是的,每当我检查用户名时,使用此“FirebaseAuth.getInstance().getCurrentUser().getUid()”。我的代码仅在此 uid“OFtpR6bfISP3Odd9K1oGWCQmeEf2”下检查用户名,当我尝试检查此 uid 下的另一个用户名,例如“3l6RIm1ACacB4WOEiq5k7nrIk8b2”,但它仅在此“OFtpR6bfISP3Odd9K1oGWCQmeEf2”下检查。问题是我想在不同的 uid 下检查不同的用户名。你能帮帮我吗。@Alex Mamo
-
你尝试获取其他用户价值的代码是什么
-
这是代码“Query checkUser = reference.child(FirebaseAuth.getInstance().getCurrentUser().getUid()).orderByChild("userName").equalTo(userEnteredUserName);" @Sambhav Khandelwal
-
使用
FirebaseAuth.getInstance().getCurrentUser().getUid()时,您获取的是UID,而不是用户,对吧?那么你到底想得到什么?
标签: android firebase firebase-realtime-database firebase-authentication