Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将Firebase数据与登录验证屏幕输入进行比较。安卓_Java_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Java 如何将Firebase数据与登录验证屏幕输入进行比较。安卓

Java 如何将Firebase数据与登录验证屏幕输入进行比较。安卓,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,因此,我正在创建登录功能,我需要将我存储在Firebase中的数据与我在登录屏幕中提供的输入进行比较,这样,如果用户在系统中注册,就可以登录,现在它只为“Customer”中的第一个特定子代工作但我需要它与所有人一起工作,这样当我添加其他用户时,它也可以识别他们。它应该与数据库中的这3个字段(电子邮件、密码、活动)进行比较 [数据库] 我会反过来做 一,。让用户使用Firebase身份验证登录方法登录 二,。使用`userid=mAuth.getCurrentUserId()` 三,。在数据库中

因此,我正在创建登录功能,我需要将我存储在Firebase中的数据与我在登录屏幕中提供的输入进行比较,这样,如果用户在系统中注册,就可以登录,现在它只为“Customer”中的第一个特定子代工作但我需要它与所有人一起工作,这样当我添加其他用户时,它也可以识别他们。它应该与数据库中的这3个字段(电子邮件、密码、活动)进行比较

[数据库]


我会反过来做

一,。让用户使用Firebase身份验证登录方法登录

二,。使用`userid=mAuth.getCurrentUserId()`

三,。在数据库中使用此用户ID检查用户是否处于“活动”状态,如果用户未自动注销并在UI上抛出错误


这意味着在数据库中,userdata将位于
mDatabase=FirebaseDatabase.getInstance().getReference().child(“客户”).child(userId)

更新。我通过添加查询和创建新方法解决了这个问题
public class LoginScreen extends AppCompatActivity {
    private FirebaseAuth mAuth;
    private DatabaseReference mDatabase;
    EditText email;
    EditText password;
    String username, pass, isActivate;
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        mAuth = FirebaseAuth.getInstance();
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login_screen);

        email = findViewById(R.id.email_signin);
        password = findViewById(R.id.passwordSignin);

        mDatabase= FirebaseDatabase.getInstance().getReference().child("Customer").child("1");
        mDatabase.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                username = dataSnapshot.child("email").getValue().toString();
                pass = dataSnapshot.child("password").getValue().toString();
                isActivate = dataSnapshot.child("active").getValue().toString();

            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });
    }

    public void backClick(View view) {
        super.onBackPressed();
    }

    public void signIn(View view) {
        if(allowedToSignin()){
            Intent intent = new Intent(this, CustomerScreen.class);
            startActivity(intent);
        }
        else {
            Toast.makeText(LoginScreen.this,"Login failed!", Toast.LENGTH_LONG).show();

        }

    }

    public boolean allowedToSignin(){
        boolean signinAllowed = true;

        if(email.getText().toString().equals(username) && isActivate.equals("true")){
            email.setError(null);
        }else {
            email.setError("enter a valid email");
            signinAllowed = false;
        }
        if (password.getText().toString().equals(pass)){
            password.setError(null);
        }else {
            password.setError("enter a valid password");
            signinAllowed = false;
        }
        return signinAllowed;

    }
}```


  [1]: https://i.stack.imgur.com/QvOla.png