java - 显示所有 Firebase 身份验证用户?
问题描述
我想制作一个聊天应用项目,将所有用户显示到用户片段,当我想在片段中显示用户时,我的应用崩溃了,请帮助我,我的代码如下:
class UsersFragment extends Fragment {
private RecyclerView recyclerView;
private UserAdapter userAdapter;
private List < User > mUsers;
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate( R.layout.fragment_users, container, false );
recyclerView = view.findViewById( R.id.fragmentUser_recyclerView );
recyclerView.setHasFixedSize( true );
recyclerView.setLayoutManager( new LinearLayoutManager( getContext() ) );
mUsers = new ArrayList <>();
readUser();
return view;
}
private void readUser() {
final FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
DatabaseReference reference = FirebaseDatabase.getInstance().getReference( "Users" );
reference.addValueEventListener( new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
mUsers.clear();
for ( DataSnapshot snapshot : dataSnapshot.getChildren() ) {
User user = snapshot.getValue( User.class );
assert user != null;
assert firebaseUser != null;
if ( !user.getmId().equals( firebaseUser.getUid() ) ) {
mUsers.add( user );
}
}
userAdapter = new UserAdapter( getContext(), mUsers );
recyclerView.setAdapter( userAdapter );
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
} );
}
}
和错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
并且错误来自这一行:
if (!user.getmId().equals(firebaseUser.getUid()))
我不在这个项目上工作请帮助我...
解决方案
推荐阅读
- docker - 配置 docker run 使用 ssl/https/tls
- java - 解释为什么这个二叉树遍历算法有 O(NlogN) 时间复杂度?
- mongodb - 我试图在 $unwind 之后返回嵌套文档的完整列表
- c# - ASP.NET Core:BindRequired 和适当的错误
- php - Symfony,使用 ajax 将 html 表单提交给控制器
- php - PHP:fwrite大字符串
- unit-testing - 开玩笑地编写单元测试时会出现特定错误
- android - 是否可以将自定义类放入 Bundle 中?
- git - 为什么重新定位到已重新定位的分支会引入合并冲突并且似乎会删除我当前的更改?
- node.js - 可以在没有数据库连接的情况下使用 sequelize