【问题标题】:Update object's field in Firebase在 Firebase 中更新对象的字段
【发布时间】:2017-07-27 13:53:25
【问题描述】:

我的项目有 2 个应用程序:Admin-app 和 Client-app。首先,我需要使用 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);

我已将评论字段设置为空,因为我想让我的用户评论客户端应用程序上的每个地方并将其同步到 Firebase 到评论字段为HashMap&lt;UserName, Review&gt;

我在客户端应用中使用这些代码将评论推送到 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 的评论字段的评论。我怎样才能做到这一点?每一个答案都值得赞赏!

【问题讨论】:

    标签: android firebase firebase-realtime-database


    【解决方案1】:

    您可以直接在引用上使用setValue() 方法,而无需像这样使用HashMap

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

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

    希望对你有帮助。

    【讨论】:

    • 我需要在 Firebase 中设置 AllData 的评论字段。您的回答提供了与我相同的结果,但以更短的方式谢谢
    • 比你需要使用监听器并直接在dataSnapshot对象上使用setValue方法。
    猜你喜欢
    • 2021-07-02
    • 2011-10-11
    • 2018-06-11
    • 1970-01-01
    • 2014-07-24
    • 2016-05-10
    • 1970-01-01
    • 2018-06-09
    • 2016-03-21
    相关资源
    最近更新 更多