Android Firebase数据库自定义用户名登录不起作用

时间:2018-09-20 12:27:35

标签: android firebase firebase-realtime-database firebase-authentication

我尝试使用自定义用户名使用Google Firebase数据库登录,但是它不起作用。

我需要如何获取用户名和密码来检索用户名和 登录密码:

import android.app.ProgressDialog;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.widget.Toolbar;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

import java.util.ArrayList;
import java.util.Collections;

public class LoginActivity extends AppCompatActivity {
    //private Toolbar toolbar;
    private EditText username1, password2;
    private Button buttonlogin;
    private DatabaseReference databaseReference;
//    private FirebaseAuth firebaseAuth;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate ( savedInstanceState );
        setContentView ( R.layout.activity_login );

        username1 = (EditText) findViewById ( R.id.username1 );
        password2 = (EditText) findViewById ( R.id.password2 );
        buttonlogin = (Button) findViewById ( R.id.buttonlogin );
//        databaseReference = FirebaseDatabase.getInstance ().getReference ( "Usres" );
//        firebaseAuth = FirebaseAuth.getInstance ();

        buttonlogin.setOnClickListener ( new View.OnClickListener () {
            @Override
            public void onClick(View view) {
                login ();
            }
        } );
    }



    private void login() {
        final String Username = username1.getText ().toString ().trim ();
        final String Password = password2.getText ().toString ().trim ();
        databaseReference = FirebaseDatabase.getInstance ().getReference ( "Usres" );

        ValueEventListener valueEventListener = new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                Artist artist = dataSnapshot.getValue(Artist.class);
                if (artist.username.equals(Username) && artist.password.equals(Password)) {
                    startActivity(new Intent(getApplicationContext(), UserLogin.class));
                } else if (Username.equals("Crazy") && Password.equals("Tasty")) {
                    startActivity(new Intent(getApplicationContext(), Admin.class));
                } else {
                    Toast.makeText(getApplicationContext(), "Username and Password is incorrect", Toast.LENGTH_LONG).show();
                }
            }

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

            }
        };
    }
}

Database

上面显示的是我在Firebase中使用的数据库,但是我想要的并没有发生。

尝试登录应用程序时立即终止并退出     应用

1 个答案:

答案 0 :(得分:0)

要解决此问题,只需更改以下代码行:

databaseReference = FirebaseDatabase.getInstance ().getReference ( "Usres" );

databaseReference = FirebaseDatabase.getInstance().getReference("Users");

正如我在您的数据库模式中看到的那样,您的用户节点名为Users,而不是Usres