Не можете загрузить данные в базу данных Firebase? - PullRequest
0 голосов
/ 11 июня 2018

Я следую инструкции , чтобы протестировать базу данных Firebase в реальном времени, но не вижу никаких данных на консоли после сохранения данных (запустив методы initialize () и saveData () ниже).И журнал не показал никакой ошибки.В чем проблема?

public static void initialize() {
        // Fetch the service account key JSON file contents
        try {
            FileInputStream serviceAccount = new FileInputStream(keyPath);
            // Initialize the app with a service account, granting admin privileges
            FirebaseOptions options = new FirebaseOptions.Builder()
                    .setCredentials(GoogleCredentials.fromStream(serviceAccount))
                    .setDatabaseUrl("https://myprojectId.firebaseio.com")
                    .build();
            FirebaseApp.initializeApp(options);

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

public static void saveData() {
        final FirebaseDatabase database = FirebaseDatabase.getInstance();
        DatabaseReference ref = database.getReference("test");

        DatabaseReference usersRef = ref.child("vocabularies");

        Map<String, Vocabulary> vocabularies = new HashMap<>();

        Vocabulary v1 = new Vocabulary();
        v1.setWord("hello");
        v1.setDefinition("hello definition");
        v1.setTranslation("hello translation");

        Vocabulary v2 = new Vocabulary();
        v2.setWord("world");
        v2.setDefinition("world definition");
        v2.setTranslation("world translation");

        vocabularies.put("hello", v1);
        vocabularies.put("world", v2);

        usersRef.setValueAsync(vocabularies);
        }

Ответы [ 3 ]

0 голосов
/ 11 июня 2018

Обратился за помощью к опытному инженеру, потому что задача сохранения данных выполняется в новом потоке и завершается до загрузки данных после завершения основного потока.Чтобы проверить объяснение, я просто добавляю

Thread.sleep(3000);

после saveData () в основном методе.Это удалось.

0 голосов
/ 28 сентября 2018

В моем случае ошибка была вызвана тем, что я не включил Token Service API для проекта на https://console.developers.google.com/apis/api/securetoken.googleapis.com/overview?project= вставьте здесь имя вашего проекта

0 голосов
/ 11 июня 2018

Согласно официальной документации относительно класса DatabaseReference , метод setValueAsync() отсутствует.Единственный метод, который может помочь вам установить значение непосредственно в ссылке - это setValue() метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...