java - 无法在 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)
我的代码似乎有什么问题?
解决方案
推荐阅读
- reactjs - “未找到模块”来自 index.js 的反应加载类
- python - 如何在散景表中删除 NaN
- c# - Microsoft Dynamics 365 CRM 身份验证的示例代码,然后重定向到 C# 控制台应用程序
- outlook - LotusScript 在 MS Outlook 中创建日历条目
- ios - 如何通过 UIWebView 在 iOS 应用程序上上传外部文件?
- r - 如何在 R 中分组和取消分组?
- r - 如何在 R 中 2 个列表的元素之间应用函数?
- java - WARNING: No mapping for GET /StudentCurd/ (HTTP Status 404 – Not Found) 我已经尝试了所有的解决方案但无法解决这个问题,所以再次询问:
- mysql - 如何正确使用带有原始 SQL 的 Quill 中缀?
- prometheus - 在 rate 或 irate 中度量标签的总和