Bagaimana cara membuat akun pengguna firebase

Saya berhasil membuat pengguna dengan email dari Android tanpa masalah apa pun, tetapi setelah saya mengunduh perpustakaan java standar dan mencoba membuat pengguna, saya tidak mendapatkan kesalahan atau umpan balik untuk kesalahan atau keberhasilan dalam panggilan balik

public static void main(String ...args){
    String url= "https://example.firebaseio.com/";
    Firebase fb = new Firebase(url);
    fb.createUser("[email protected]", "123456", new Firebase.ResultHandler() {
        @Override
        public void onSuccess() {
            System.out.println("success");
        }
        @Override
        public void onError(FirebaseError firebaseError) {
            System.out.println("failed !");
        }
    });
    System.out.println("Hello there");
}

person aboodrak    schedule 14.05.2016    source sumber
comment
Thread utama mungkin dihentikan sebelum panggilan balik dapat kembali. Anda dapat memeriksa akun Firebase Anda untuk melihat apakah pengguna tersebut benar-benar dibuat   -  person OneCricketeer    schedule 14.05.2016
comment
Tangkapan bagus @cricket_007. Lihat stackoverflow. com/questions/37098006/ untuk info lebih lanjut tentang ini.   -  person Frank van Puffelen    schedule 14.05.2016
comment
@FrankvanPuffelen Terima kasih, saya tahu RxJava akan melakukan hal yang sama, tetapi ada mekanisme pemblokiran di API itu. Tidak yakin tentang Firebase   -  person OneCricketeer    schedule 14.05.2016


Jawaban (1)


seperti komentar di atas, masalahnya adalah thread utama keluar sebelum ResultHnadler dipanggil jadi saya memperbaiki masalah dengan cara ini untuk mencegah thread utama berakhir sebelum ResultHnadler dipanggil. Bagus jika ada cara yang lebih baik

 public static void main(String ...args)  {
    final AtomicBoolean isCalled = new AtomicBoolean(false);
    String FIREBASE = "https://example.firebaseio.com/";
    Firebase fb = new Firebase(FIREBASE);
    fb.createUser("[email protected]", "1234321", new Firebase.ResultHandler() {
        @Override
        public void onSuccess() {
            isCalled.set(true);
            System.out.println("success");
        }
        @Override
        public void onError(FirebaseError firebaseError) {

            isCalled.set(true);
            System.out.println("fail");
        }
    });
    while (!isCalled.get()){
    }
}
person aboodrak    schedule 15.05.2016