首页 > 解决方案 > 无法在 child() firebase 实时数据库登录中为参数“pathString”传递 null

问题描述

我在 firebase 上执行查询时出错。我的查询代码是这个

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

    ref = FirebaseDatabase.getInstance().getReference().child("Users");

    login.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (ref.child(userName) != null) {
                login();
            }else if(ref.child(userName) == null){
                Toast.makeText(LoginActivity.this, "The username and password you entered did not match our records. Please double-check and try again",Toast.LENGTH_SHORT).show();
            }else {
                Toast.makeText(LoginActivity.this, "Username Doesn't Exist",Toast.LENGTH_SHORT).show();
            }
        }
    });
}

public void login(){
    a.setMessage("Logging in");
    a.show();
    userName = username.getText().toString();
    password = pw.getText().toString();
    ref.child(userName).addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            UserProfiles userProfiles = dataSnapshot.getValue(UserProfiles.class);
            if(userName.equals(userProfiles.getUsername())){
             a.dismiss();
                Toast.makeText(LoginActivity.this, "Login Successful!",Toast.LENGTH_SHORT).show();
                startActivity(new Intent(LoginActivity.this, Home.class));
            }else{
                Toast.makeText(LoginActivity.this, "Incorrect Password",Toast.LENGTH_SHORT).show();
            }
        }

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

        }
    });
}

这是错误的logcat

2019-02-27 23:32:27.114 22677-22677/com.example.ils E/AndroidRuntime: 致命异常: 主进程: com.example.ils, PID: 22677 java.lang.NullPointerException: Can't pass null for com.google.firebase.database.DatabaseReference.child(com.google.firebase:firebase-database@@16.0.6:101) 的 child() 中的参数 'pathString' 在 com.example.ils.LoginActivity$1.onClick( LoginActivity.java:48) 在 android.view.View.performClick(View.java:6597) 在 android.view.View.performClickInternal(View.java:6574) 在 android.view.View.access$3100(View.java: 778) 在 android.view.View$PerformClick.run(View.java:25885) 在 android.os.Handler.handleCallback(Handler.java:873) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在android.os.Looper.loop(Looper.java:193) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:第493章)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

我的代码似乎有什么问题?

标签: javaandroiddatabasefirebase

解决方案


推荐阅读