У меня есть ValueEventListener, и внутренний код никогда не достигается. Мое приложение проверяет подлинность, но я не могу получить данные, и я не уверен, что мне не хватает. В приведенном ниже коде, когда я проверяю, uid имеет правильное значение, и путь данных («Пользователи/[uid]») верен, но ни один из внутреннего кода в прослушивателе событий значения никогда не достигается. Я также попытался разместить слушателя прямо в корне, с тем же результатом.ValueEventListener никогда не вводится
Я установил Firebase, используя параметры меню, добавив в приложение как аутентификацию, так и базу данных Realtime; аутентификация работает нормально, поэтому мне интересно, нужно ли что-то еще настроить для базы данных в реальном времени? Я прочитал документацию и прошел множество примеров, но я не вижу ничего, что мне не хватает.
uid = FirebaseAuth.getInstance().getCurrentUser().getUid().toString();
DatabaseReference userRef = ref.child("Users").child(uid).getRef();
ValueEventListener userListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
User user = dataSnapshot.getValue(User.class);
if (user == null) {
SettingsLoad();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.e("User", "User not found");
}
};
userRef.addListenerForSingleValueEvent(userListener);
Пожалуйста, не вызывайте '.getRef()' после 'child()'. Он не нужен и вызовет проблемы в какой-то момент (хотя это не является причиной вашей текущей проблемы). Просто: 'DatabaseReference userRef = ref.child (« Пользователи »). Child (uid);'. –