2016-12-11 9 views
1

ich eine einfache POJO Klasse haben sich hier:Kann POJO nicht auf Firebase-Datenbank schreiben

@IgnoreExtraProperties 
public class Poll { 

private String Question; 
private String Image_URL; 

public Poll() { 
} 

public Poll(String Question, String Image_URL){ 
    this.Question = Question; 
    this.Image_URL = Image_URL; 
} 


public String getQuestion() { 
    return Question; 
} 

public void setQuestion(String question) { 
    Question = question; 
} 

public String getImage_URL() { 
    return Image_URL; 
} 

public void setImage_URL(String image_URL) { 
    Image_URL = image_URL; 
    } 
} 

Ich versuche, Firebase über das folgende Verfahren zu schreiben und nichts ist überhaupt in der Firebase Datenbank geschieht, so dass es isn‘ t Schreiben oder Erkennen der Referenz. Es kann mit meiner Firebase/POJO-Mapping zu tun hat, aber ich kann die Ursache nicht ermitteln:

mSubmitPollCreation.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

//    //TODO: Need to determine if this is proper epoch - i.e. does it account for time zones 
//    Calendar c = Calendar.getInstance(); 
//    final String epochTime = String.valueOf(c.getTimeInMillis()); 
//    mEpochRef = mBaseRef.child("Poll").child(epochTime); 

       //TODO: Need to check if poll requirements are added, i.e. Question, Answer, ...... 
       //check if image has been loaded first 
       if (resultImageURL != null){ 
        Map<String, Object> imageURL = new HashMap<String, Object>(); 
        imageURL.put("Image_URL", resultImageURL); 
//     mEpochRef.updateChildren(imageURL); 
       } else { 
        Toast.makeText(getApplicationContext(),getResources().getString(R.string.no_image_selected),Toast.LENGTH_LONG).show(); 
        return; 
       } 

       Poll poll = new Poll(mCreatePollQuestion.getText().toString(), resultImageURL); 
         mBaseRef = FirebaseDatabase.getInstance().getReference(); 

       mBaseRef.child("Polls").push().setValue(poll); 
    } 
+0

Fehler beim Festlegen eines Werts werden häufig durch [Sicherheitsregeln] verursacht (https://firebase.google.com/docs/database/security/ Schnellstart). Fügen Sie einen 'CompletionListener' zu' setValue() 'hinzu. Beispielcode hier: http://stackoverflow.com/a/38229289/4815718 –

+0

In Bezug auf Ihren Kommentar zum Ausführen auf einem Emulator: Die Emulator-Images liegen oft hinter der Veröffentlichung der neuen Versionen von Firebase/Play Services. Siehe diese Antwort: http://stackoverflow.com/a/41104004/4815718 –

Antwort

3

zuerst die Sicherheitsregeln überprüfen, ob Sie mit dem Schreiben Erlaubnis für sie aktiviert haben oder nicht ... Wenn nicht schriftlich aktivieren Berechtigung ... Im folgenden Link finden Sie Informationen zum Festlegen von Berechtigungen ... https://firebase.google.com/docs/database/security/quickstart

+0

Ich habe festgestellt, dass es auf dem Emulator passiert, der anscheinend nicht die neuesten Google Play Services installiert hat. Es ist ein Emulator vom offiziellen Android Virtual Device, daher würde ich annehmen, dass es vollständig in Firebase integriert werden kann – tccpg288

Verwandte Themen