2017-07-27 5 views
0

Mein Projekt hat 2 Apps: Admin-App und Client-App. Erstens, ich brauche die Admin-app verwenden, um Daten in Firebase zu setzen und hier ist meine DatenklasseUpdate-Objekt-Feld in Firebase

public class AllData { 
    private String placeName; 
    private ArrayList<String> category; 
    private String address; 
    private String openingHour; 
    private String website; 
    private HashMap<String, String> review; } 

und ich verwende folgende Codedaten zu setzen in Firebase

AllData alldata = new AllData(placeName, category, address, 
        , openingHour, website, null); 
mDatabaseReference = mFirebaseDatabase.getReference().child("Store Data"); 
         DatabaseReference storeData = mDatabaseReference.child(placeName); 
         storeData.setValue(alldata); 

I gesetzt haben die Überprüfung Feld als null, weil ich möchte, dass meine Benutzer lassen, jeden Platz auf dem Client-App und synchronisieren sie es in Firebase zur Überprüfung Feld Bewertung als HashMap<UserName, Review>

ich diese Codes in Client-app Beitrag Push-to-Feuerbasis

HashMap<String, String> reviewMap = new HashMap<>(); 
      reviewMap.put(UserName, review); 
      mDatabase = FirebaseDatabase.getInstance(); 
      mReference = mDatabase.getReference().child("Store Data").child(selectedPlace.placeName).child("review"); 
      mReference.push().setValue(reviewMap); 

Dies ist kein richtiger Ansatz, aber das ist alles was ich konnte. Ich möchte die Überprüfung des Benutzers asynchron auf das AllData-Überprüfungsfeld in Firebase aktualisieren. Wie kann ich das erreichen? Jede Antwort wird geschätzt!

Antwort

1

Sie können einfach verwenden setValue() Methode direkt auf dem Referenz ohne HashMap wie folgt aus:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); 
rootRef.child("Store Data").child(selectedPlace.placeName).child("review").setValue(yourValue); 

In dem yourValue ist der Wert, den Sie auf die Überprüfung Schlüssel festlegen möchten.

Ich hoffe, es hilft.

+0

Was ich brauche, ist das Reviewfeld der AllData in der Firebase zu setzen. Ihre Antwort liefert das gleiche Ergebnis wie meins, aber in einer verkürzten Weise Danke trotzdem –

+0

Dann müssen Sie einen Listener verwenden und 'setValue' direkt auf den dataSnapshot-Objekten verwenden. –