首页 > 解决方案 > 显示所有 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()))

我不在这个项目上工作请帮助我...

标签: javaandroidfirebase

解决方案


推荐阅读