RegisterActivity

  • Dann würde ich sagen fange erstmal an Java zu lernen. Grundlagen. Und die OOP zu verstehen.


    Das mit der Klasse geht so nicht. Du bekommst von der ref einen string denn kannst du dann in deine Instanz deiner Klasse ablegen wenn du willst.


    Schaue meinen lesen Post.

  • In der Registrierung habe ich ref genauso initialisiert und dort funktioniert es?? mhmmm


    in der onDataChange ist im übergabeparameter Datasnapshot dataSnapshot für das anlegen eines neuen DataSnapshots oder irre ich mich da?


    Wenn ja wie würde der den aussehen da


    Users usersData = new DataSnapshot funktioniert nicht


    DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Users").child("Ratlos");Was fragt der den dann im child ab?


    Es geht eigentlich nur um diese stelle


    if (usersData.getUserName().equals(name)) {// getUserName Nullpointer


    getUserName() schmeißt mir einen NullPointer zurück


    und mir fehlen lediglich die kenntnisse über der API und da ich faul bin wie man an meiner Schreibweiße evt schon erkennen konnte lerne ich nicht erst die API sonder stürze mich direkt ans angemacht ^^ habe ich bis jetzt jedes mal gemacht nur halt keine oop sondern sowas wie lua python oder auch nen bissl SQL

  • hallo


    Zitat

    In der Registrierung habe ich ref genauso initialisiert und dort funktioniert es?? mhmmm


    nein das ist nicht dasselbe das ist auch ein anderer DatenType. FirebaseAuth und nicht DatabaseReference


    in deinem ersten Post ganz oben benutzt du das



    DatabaseReference currentUserDb = FirebaseDatabase.getInstance().getReference().child("Users").child(radioButton.getText().toString()) .child(userID).child("name");






    Users usersData = dataSnapshot.child(parentDbName).child(name).getValue(Users.class);


    Erstellt eine Variable von deiner Klsasse User aber keine sinnvolle Instanz (Objekt) davon.


    Überlege dir mal was Users.calass ist macht. Das erstellt dir zwar eine Instanz (Objekt) deiner Variablen aber welcher Konstruktor wird den da benutzt? Der Default ohne Parameter warscheinlich.



    Im weiteren Verlauf willst du auf eine Methode getUserName() aus deiner Klasse zugreifen.


    Erstens bezweifle ich das du eine ordentliches Objekt deiner Klasse hast


    zweitens gibt es die Methode nicht in deiner Klasse.



    Users usersData = dataSnapshot.child(parentDbName).child(uName).getValue(Users.class);



    So nochmal hierzu schaue die mal in der Doku API (die du ja aus Faulheit nicht liest) an was getValue


    Zurück gibt und was es als Übergabe Parameter erwartet.



    GetValue gibt in diesen Fall entweder einen String, int, Boolean, Array, Liste zurück je nachdem was dein Child im Json Sting beinhaltet.



    Glaube du solltest dir auch mal ansehen wie deine DB aufgebaut ist und in welcher form du die daten von der DB bekommst das ist im JSON Format. Wenn du das Verstanden hast weist du ach was Child ist und worauf es zeigt.




    Selbst wenn due eine richtige Instanz (Objekt) der Klasse aus der getValue bekommst hast du aber nicht den Passenden Kostrucktor in deiner Klasse den dann getValue aufrufen kann. Werte sind dann mit Sicherheit keinen ein deiner Klasse gespeichert.



    Selbst wenn du nun noch schnell die Methode getUserName in deine Klasse einfügst.
    ohne den Richtigen Konstruktor wird das auch nicht gehn.




    Da du ja etwas zu faul bist zum lessen und lernner kann ich dir da hier hauch nicht mehr weiter helfen.
    Positiv von dir ist das du es selber zugibt was die meisten deiner Art nicht tuen und immer nur Copy& Paste ohne Hintergrund wissen machen, das geht dann aber fast immer in die Hose wie du jetzt hier auch siehst.




    Ich wünsche dir noch viel Erfolg.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!