在Firebase中更新对象的字段

时间:2017-07-27 05:44:19

标签: android firebase firebase-realtime-database

我的项目有2个应用:管理员应用和客户端应用。首先,我需要使用Admin-app将数据放入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);

我已将审核字段设置为null,因为我想让我的用户审核客户端应用中的每个位置,并将其同步到Firebase中,并将其作为HashMap<UserName, Review>

同步到审核字段

我在客户端应用中使用这些代码将评论推送到Firebase

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 个答案:

答案 0 :(得分:1)

您可以直接在引用上使用setValue()方法而不使用HashMap这样的代码:

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

其中yourValue是您要设置为审核关键字的值。

希望它有所帮助。