База данных администратора Firebase не может прочитать

Я пытаюсь сделать настольное приложение для редактирования базы данных firebase. Я делаю это на языке java, но не могу заставить его работать с базой данных.

import java.io.FileInputStream;
import java.io.FileNotFoundException;

import com.google.firebase.FirebaseApp;
import com.google.firebase.FirebaseOptions;
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 com.google.firebase.auth.FirebaseCredentials;

public class MainClass {

    public static void main(String[] args) throws FileNotFoundException {
        // TODO Auto-generated method stub
        FileInputStream serviceAccount = new FileInputStream("adminkey.json");


        FirebaseOptions options = new FirebaseOptions.Builder()
                .setCredential(FirebaseCredentials.fromCertificate(serviceAccount))
                .setDatabaseUrl("https://<database name>.firebaseio.com")
                .build();
        FirebaseApp app = FirebaseApp.initializeApp(options);

        System.out.println(app.getName());

        DatabaseReference ref = FirebaseDatabase.getInstance().getReference();

        ref.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                System.out.println("Database works");
                Iterable<DataSnapshot> td = dataSnapshot.getChildren();
                if(dataSnapshot.hasChildren())
                    System.out.println("Have childrens");
                for(DataSnapshot key : td){
                String document = key.getKey();
                System.out.println(document);
                }
            }

            @Override
            public void onCancelled(DatabaseError arg0) {
                // TODO Auto-generated method stub
                System.out.println("Cancel");
            }
        }); 
    }    
}

Когда я запускаю этот код, он не пишет в консоли «База данных работает» или «Отменено». Он никогда не входит внутрь onDataChange() или onCanceled().

Я получаю этот код из https://firebase.google.com/docs/database/admin/start


person Šimon Marko    schedule 04.04.2017    source источник
comment
Скорее всего, ваша программа просто завершает работу, не успев прочитать базу данных. См. stackoverflow.com/questions/31700830/ и stackoverflow.com/questions/37098006/   -  person Frank van Puffelen    schedule 05.04.2017
comment
Большое спасибо. Thread.sleep() работает. Но было бы неплохо поместить эту информацию в документацию администратора на веб-странице firebase.   -  person Šimon Marko    schedule 05.04.2017
comment
Хорошая идея. Можете ли вы щелкнуть ссылку «Отправить отзыв» на странице, где вы ожидаете этого?   -  person Frank van Puffelen    schedule 05.04.2017