此问题已在Comparing EditText string with firebase database's child value处提出,我将其用作指导,但遇到的问题在那里没有解决。我知道Firebase提供了身份验证选项,但目前我需要使用实时。我希望将在我的用户名和密码EditTexts中输入的2个值与实时数据库“用户”中的子值进行比较。
当我运行代码时,我得到一个
试图在空对象引用上调用虚拟方法'java.lang.String java.lang.Object.toString()'
我假设username1和/或password1均为null,这就是为什么我的代码无法运行的原因。
logUsername = findViewById(R.id.etLoginUsers); logPassword = findViewById(R.id.etLoginPassword); FirebaseApp.initializeApp(this); final DatabaseReference mDatabaseRef = FirebaseDatabase.getInstance().getReference().child("Users"); btnLogin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final String username = logUsername.getText().toString().trim(); final String password = logPassword.getText().toString().trim(); mDatabaseRef.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { String username1 = dataSnapshot.child("username").getValue().toString(); String password1 = dataSnapshot.child("password").getValue().toString(); if (username.equals(username1) & password.equals(password1)){ Intent intSignIn = new Intent(MainActivity.this, HomeActivity.class); startActivity(intSignIn); } else { Toast.makeText(MainActivity.this, "Incorrect Login Details", Toast.LENGTH_SHORT).show(); } } @Override public void onCancelled(@NonNull DatabaseError databaseError) { } });
。我的读写规则都设置为true。我是编码新手,因此不胜感激。非常感谢!
此问题的询问位置:将EditText字符串与firebase数据库的子值进行比较,我将其用作指导,但遇到了在那里未解决的问题。我知道Firebase ...
密钥在此代码段中: