2013-09-04 4 views
7

Próbuję utworzyć podstawowe połączenie z bazą Firebase w aplikacji Java, a przy użyciu podstawowego kodu pod warunkiem, że nie jestem w stanie uzyskać żadnej odpowiedzi.Podstawowe połączenie Firebase Java

Oto kod używam:

package fix; 

import com.firebase.client.*; 

public class Main { 

    public static void main(String args[]) throws Exception { 

    String url = "https://----.firebaseIO.com/"; 
    Firebase dataRef = new Firebase(url); 

    dataRef.addListenerForSingleValueEvent(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot snapshot) { 
      System.out.println("data"); 
     } 

     @Override 
     public void onCancelled() { 
      System.err.println("Listener was cancelled"); 
     } 
    }); 

    System.out.println("hi"); 
    } 
} 

Biblioteka wydaje się ładuje grzywny. Jakieś sugestie?

Aktualizacja

[java] Fri Sep 06 09:54:43 PDT 2013 [DEBUG] ViewManager: Raising events for /.info/authenticated 
[java] Fri Sep 06 09:54:43 PDT 2013 [DEBUG] ViewManager: Doing onDiff with changes: [] 
[java] Fri Sep 06 09:54:43 PDT 2013 [DEBUG] ViewManager: Marking queries complete for /.info/authenticated 
[java] Fri Sep 06 09:54:43 PDT 2013 [DEBUG] ViewManager: Marking queries complete for /.info/authenticated 
[java] Fri Sep 06 09:54:43 PDT 2013 [DEBUG] ViewManager: Marking queryMap complete:null 
[java] Fri Sep 06 09:54:43 PDT 2013 [DEBUG] ViewManager: Marking queries complete for /.info/authenticated 
[java] Fri Sep 06 09:54:43 PDT 2013 [DEBUG] ViewManager: Marking queryMap complete:null 
[java] Fri Sep 06 09:54:43 PDT 2013 [DEBUG] ViewManager: Raising events for /.info/connected 
[java] Fri Sep 06 09:54:43 PDT 2013 [DEBUG] ViewManager: Doing onDiff with changes: [] 
[java] Fri Sep 06 09:54:43 PDT 2013 [DEBUG] ViewManager: Marking queries complete for /.info/connected 
[java] Fri Sep 06 09:54:43 PDT 2013 [DEBUG] ViewManager: Marking queries complete for /.info/connected 
[java] Fri Sep 06 09:54:43 PDT 2013 [DEBUG] ViewManager: Marking queryMap complete:null 
[java] Fri Sep 06 09:54:43 PDT 2013 [DEBUG] ViewManager: Marking queries complete for /.info/connected 
[java] Fri Sep 06 09:54:43 PDT 2013 [DEBUG] ViewManager: Marking queryMap complete:null 
[java] Fri Sep 06 09:54:43 PDT 2013 [DEBUG] ViewManager: Adding Value Event Listener callback for path:/
[java] Fri Sep 06 09:54:43 PDT 2013 [DEBUG] PersistentConnection: pc_0 - Listening on/for [{}] 
[java] Fri Sep 06 09:54:43 PDT 2013 [DEBUG] PersistentConnection: pc_0 - Adding listen params: [{}] 
[java] Fri Sep 06 09:54:43 PDT 2013 [DEBUG] EventRaiser: Raising 0 event(s) 
[java] wait 
[java] wait 
[java] wait 
[java] wait 
+0

Drukujesz "cześć" i od razu odejdź, czego byś się spodziewał? –

+0

Czy próbowałeś zapisywać dane w Firebase ze swojej aplikacji? To by zweryfikowało, czy biblioteka jest poprawnie zainstalowana i wszystko. – Retsam

+0

Próbowałem pisać i nie mogłem. W ogóle nie widziałem dowodu połączenia. Aby zainstalować bibliotekę, umieszczam słoik w mojej bibliotece i dołączam com.firebase, jak pokazano powyżej. Czy są jakieś inne kroki do podjęcia? Zakładałem, że skoro obiekty biblioteki nie wyświetlają błędów, to wszystko zostało poprawnie zawarte. – Derek

Odpowiedz

2

Firebase Engineer, czy możesz włączyć rejestrowanie i publikować dane wyjściowe? Można włączyć rejestrowanie, wykonując:

Firebase.getDefaultConfig().setLogLevel(Logger.Level.DEBUG); 

Ponadto, można dodać obserwatora dla

dataRef.child(".info/connected"); 

i dziennika zdarzeń, które można uzyskać z niego? Dzięki temu dowiesz się, kiedy jesteś połączony lub odłączony od Firebase.

Edytuj: Rozwiązano to przez e-mail. To był błąd w bibliotece klienta, który został rozwiązany. Możesz pobrać najnowszą wersję ze strony internetowej: https://www.firebase.com/docs/downloads.html

+0

Zaktualizowałem pytanie z wynikowymi logami. Mam nadzieję, że przechwyciłem logi poprawnie. – Derek

+0

Cześć Derek. Czy możesz wysłać mi wiadomość e-mail na greg na stronie firebase.com? Chciałbym na ten temat odpowiedzieć, ponieważ dzienniki niewiele pokazują. Czy możesz dołączyć wersję pakietu SDK Firebase, którego używasz, a także wersję Java? (Firebase.getSdkVersion() i java -version) –

+0

Tak, ta aktualizacja naprawiła to za mnie. Dzięki! – Derek

4

wierzę probelm jest to, że w przeciwieństwie do node.js który pracuje cały czas czeka na imprezach i wywołania zwrotne na ogień, Java jest zamykany, gdy osiągnie koniec głównej metody. Będziesz chciał, aby główny wątek nie został zakończony. Coś takiego powinno powstrzymać główny wątek przed zakończeniem.

while(true) { 
    Thread.Sleep(10000); //Sleep 10 seconds 
} 
+0

Dziękuję wam za odpowiedzi. Konsola nie "następnego wiersza", więc założyłem, że jest żywy. Utknąłem w sen z println, a on po prostu kontynuuje drukowanie bez odpowiedzi z firebase. – Derek