#java #android #firebase #firebase-authentication
#java #Android #firebase #firebase-аутентификация
Вопрос:
Не удается повторно разрешить
final FirebaseUser firebaseUser = FirebaseAuth.getInstance();
Если я изменю его на
final FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();
он не разрешит getUid в этом
if (!user.getUser_id().equals(firebaseUser.getUid())){
mUsers.add(user);
И если я изменю его на FirebaseUser firebaseUser = FirebaseUser.getInstance();
, он не разрешит getInstance (); Что я могу сделать, чтобы устранить ошибку, пожалуйста, помогите
private void readUsers() {
final FirebaseUser firebaseUser = FirebaseAuth.getInstance();
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("users");
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
mUsers.clear();
for (DataSnapshot snapshot : dataSnapshot.getChildren()){
User user = snapshot.getValue(User.class);
assert user !=null;
assert firebaseUser !=null;
if (!user.getUser_id().equals(firebaseUser.getUid())){
mUsers.add(user);
}
}
userAdapter = new UserAdapter(getContext(), mUsers);
recyclerView.setAdapter(userAdapter);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
Ответ №1:
FirebaseAuth.getInstance()
возвращает экземпляр FirebaseAuth
, так что это:
final FirebaseUser firebaseUser = FirebaseAuth.getInstance();
должно быть это вместо:
final FirebaseAuth auth = FirebaseAuth.getInstance();
Затем измените это:
assert user !=null;
assert firebaseUser !=null;
if (!user.getUser_id().equals(firebaseUser.getUid())){
mUsers.add(user);
}
в это:
if (!user.getUser_id().equals(auth.getCurrentUser().getUid())){
mUsers.add(user);
}