android - 不能为参数 pathString 我孩子传递 null
问题描述
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
RecyclerView storyRecycler = (RecyclerView) inflater.inflate(R.layout.fragment_story,container,false);
Bundle bundle = getArguments();
if(bundle != null) {
language = (String) bundle.getString("lang");
}
Query query = FirebaseDatabase.getInstance()
.getReference()
.child(language);
}
错误:
java.lang.NullPointerException: Can't pass null for argument 'pathString' in child()
at com.google.firebase.database.DatabaseReference.child(com.google.firebase:firebase-database@@19.2.1:96)
at com.killer.storytime.StoryFragment.onCreateView(StoryFragment.java:50)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2439)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1460)
at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:802)
解决方案
您不能通过 firebase 数据库子路径为空。您可以检查child()函数定义:
@NonNull
@PublicApi
public DatabaseReference child(@NonNull String pathString) {
if (pathString == null) {
throw new NullPointerException("Can't pass null for argument 'pathString' in child()");
} else {
if (this.getPath().isEmpty()) {
Validation.validateRootPathString(pathString);
} else {
Validation.validatePathString(pathString);
}
Path childPath = this.getPath().child(new Path(pathString));
return new DatabaseReference(this.repo, childPath);
}
}
推荐阅读
- format - 如何更改雪花中提交的日期的日期格式?
- javascript - 单击按钮时如何将tinymce绑定到最近的文本区域
- java - 找不到 String 类型的 Bean
- node.js - 如何在nodejs中使用replace来组合两个符号?
- c - 通过指针实现 sprintf 的问题
- actions-on-google - 如何告诉 Google 不要为传感器发送 EXECUTE 意图?
- javascript - React Parent Component 的 this.state 在 Child Component 的构造函数之后被调用
- pandas - ax.twinx 标签出现两次
- python - 如何在执行期间停止命令 discord.py
- node.js - 运行两个具有不同参数的nodejs index.js会导致问题吗