2017-07-27 6 views
0

私のプロジェクトにはAdmin-appとClient-appの2つのアプリケーションがあります。まず、私が設定している私はFirebaseにデータを置くために管理アプリを使用する必要があり、ここに私のデータクラスは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; } 

であると私は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); 

にデータを設定するには、次のコードを使用します私は私のユーザーは、私が

をFirebaseするレビューをプッシュするクライアント・アプリケーションでこれらのコードを使用し HashMap<UserName, Review>

として審査場にFirebaseにクライアントアプリと同期それをそれぞれの場所を確認できるようにしたいので、nullとして審査場

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); 

これは正しいアプローチではありませんが、それはすべて可能です。私が望むのは、ユーザーのレビューをFirebaseのAllDataのレビューフィールドに非同期に更新することです。これをどうすればいいのですか?すべての答えは高く評価されています!

答えて

1

あなたは、単にこのようなHashMapを使用せずに参照の上、直接setValue()メソッドを使用することができます。

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

yourValueであなたが審査キーに設定する値です。

希望します。

+0

私が必要とするのは、FirebaseにAllDataのレビューフィールドを設定することです。あなたの答えは、私と同じ結果を提供しますが、短縮形です。 –

+0

リスナを使用し、dataSnapshotオブジェクトで直接 'setValue'メソッドを使う必要があります。 –

関連する問題