Проблема с данными в реальном времени База данных Firebase

Я пытаюсь получить все uid из базы данных, которая имеет следующую структуру. На этом изображении показаны «Пользователи» список дочерних элементов «uid» каждого пользователя, а у uid есть дочерний элемент с именем пользователя и значением в качестве имени пользователя Я не могу получить доступ к базе данных.

package com.example.androidChat;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.ListView;
import android.widget.Toast;

import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    ListView userListView;
    ArrayList<String> UsernameArrayList, UidArrayList;
    private FirebaseAuth mAuth;
    FirebaseDatabase database;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mAuth = FirebaseAuth.getInstance();
        userListView = findViewById(R.id.userListView);
        UsernameArrayList = new ArrayList<>();
        UidArrayList = new ArrayList<>();

        database = FirebaseDatabase.getInstance();
        DatabaseReference getUser = database.getReference().child("User");
        getUser.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {
                for (DataSnapshot dataSnapshot: snapshot.getChildren()){
                    Log.i("Users", dataSnapshot.getValue().toString());
                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError error) {
                Log.i("Users", "Error over here!!");
                Log.w("Error: ", error.getMessage());
            }
        });
    }



    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        MenuInflater menuInflater = getMenuInflater();
        menuInflater.inflate(R.menu.main_menu,menu);

        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle item selection
        switch (item.getItemId()) {
            case R.id.logout:
                newGame();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

    private void newGame() {
        mAuth = FirebaseAuth.getInstance();
        mAuth.signOut();
        Intent intent = new Intent(this, StartActivity.class);
        startActivity(intent);
    }
}

Я пытался добавить некоторые зависимости и пробовал все, но появляется следующая ошибка.

implementation 'com.google.android.gms:play-services-basement:17.4.0'

Приведенная выше строка была предложена в другом вопросе, но не сработала.

2020-12-13 15:46:38.426 8679-9347/com.example.androidChat W/ConnectionTracker: Exception thrown while unbinding
    java.lang.IllegalArgumentException: Service not registered: lt@e163c21
        at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:1466)
        at android.app.ContextImpl.unbindService(ContextImpl.java:1622)
        at android.content.ContextWrapper.unbindService(ContextWrapper.java:697)
        at ci.f(:com.google.android.gms.dynamite_measurementdynamite@[email protected] (040700-0):1)
        at ci.d(:com.google.android.gms.dynamite_measurementdynamite@[email protected] (040700-0):2)
        at lu.E(:com.google.android.gms.dynamite_measurementdynamite@[email protected] (040700-0):9)
        at le.a(:com.google.android.gms.dynamite_measurementdynamite@[email protected] (040700-0):3)
        at eg.run(:com.google.android.gms.dynamite_measurementdynamite@[email protected] (040700-0):3)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at iz.run(:com.google.android.gms.dynamite_measurementdynamite@[email protected] (040700-0):5)

Я даже пытался сменить эмулятор и запустить его на своем устройстве.

Вы уверены, что правильно использовать .child("User") вместо .child("Users")?

Alex Mamo 14.12.2020 10:14
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
215
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проверьте, добавили ли вы последнюю версию зависимости базы данных Firebase Realtime — https://firebase.google.com/docs/android/setup

com.google.firebase:firebase-database:19.5.1

Проверьте, синхронизированы ли ваши зависимости.

Проверьте, есть ли у вашего realtime databasepermissions доступ к данным и read/write к ним, не будучи authenticated.

Проверьте, правильно ли ваше приложение firebase интегрировано в ваше приложение для Android, проверив firebase console

Попробуйте аннулировать кеш и запустить Android Studio.

Другие вопросы по теме