# Daten aus der Firebase-Echtzeitdatenbank abfragen und in Variablen speichern (JAVA)



## Den4Coding (29. Jan 2021)

Hallo an alle Forum Mitglieder, 

das ist mein erster Beitrag also bitte nicht böse sein, wenn etwas nicht passt. Ich habe eine Webanwendung erstellt, die Nutzerdaten an die Firebase-Echtzeitdatenbank sendet. Ich versuche gerade eine Java-Anwendung zu erstellen und zum laufen zu bringen, die die Daten von Firebase realtime database abrufen soll und in Variablen speichern soll. Ich habe 2 Versionen von Tabellen erstellt in Firebase, weil ich mir noch nicht sicher bin, was für diesen Zweck besser geeignet ist. Zuerst die Firebase Datenbank Struktur (ich habe die gleichen Daten vom gleichen Benutzer benutz):


Dann hier der Code (ich habe kaum JAVA Kenntnise): 
[CODE lang="java" title="JAVA Applikation zur Datenabfrage Firebase"]import com.google.auth.oauth2.GoogleCredentials;
import com.google.firebase.FirebaseApp;
import com.google.firebase.FirebaseOptions;
import com.google.firebase.database.*;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.concurrent.CountDownLatch;

public class getUserData {

    public static void main(String[] args) throws IOException, InterruptedException {
        FileInputStream serviceAccount = new FileInputStream("https://myFirebaseStorage.firebaseio.com");
        FirebaseOptions options = FirebaseOptions.builder()
                .setCredentials(GoogleCredentials.fromStream(serviceAccount))
                .setDatabaseUrl("https://myFirebaseStorage.firebaseio.com")
                .build();
        FirebaseApp.initializeApp(options);

        class users {
            public String Name;

        }
        final DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Name");
        CountDownLatch latch = new CountDownLatch(1);
        ref.orderByChild("Name").addChildEventListener(new ChildEventListener() {

            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String prevChildKey) {
                users user = dataSnapshot.getValue(users.class);
                System.out.println(dataSnapshot.getKey() + user.Name);
            }

            @Override
            public void onChildChanged(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onChildRemoved(DataSnapshot dataSnapshot) {

            }

            @Override
            public void onChildMoved(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });
        latch.await();
    }
}

[/CODE]

Leider kriege ich überhaupt nicht hin, das der Name zum Beispiel in der Variable gespeichert wird. Ich hoffe jemand hat die passende Idee, wie man das Problem zu lösen sei. Ich bedanke mich im voraus.


----------

