我尝试使用自定义用户名使用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) {
}
};
}
}
上面显示的是我在Firebase
中使用的数据库,但是我想要的并没有发生。
尝试登录应用程序时立即终止并退出 应用
答案 0 :(得分:0)
要解决此问题,只需更改以下代码行:
databaseReference = FirebaseDatabase.getInstance ().getReference ( "Usres" );
到
databaseReference = FirebaseDatabase.getInstance().getReference("Users");
正如我在您的数据库模式中看到的那样,您的用户节点名为Users
,而不是Usres
。