【发布时间】:2016-07-31 13:50:28
【问题描述】:
我能否像使用 setValue() 一样使用任意(Firebase 友好)对象映射来使用 updateChildren()?以下工作正常:
public void addReview(FbReview review, AddCallback callback) {
Firebase root = mDataRoot.child(REVIEWS_ROOT).child(review.getReviewId());
root.setValue(review, newAddListener(review, callback));
}
其中 FbReview 是一个简单的数据持有者类,它有一个空的构造函数和用于自动数据结构化的 getter(使用 setValue() 中的对象在 Firebase documentation for setValue() 中显示
但是,如果我尝试网页中等效的 updateChildren() 后续示例:
@Override
public void addReview(FbReview review, AddCallback callback) {
Map<String, Object> updates = new HashMap<>();
updates.put(REVIEWS_ROOT + "/" + review.getReviewId(), review);
mDataRoot.updateChildren(updates, newAddListener(review, callback));
}
我收到一个错误,提示无法解析我定义的 FbReview 对象:
FirebaseException:无法解析具有类 ... FbReview 的节点
如果我尝试上面的updateChildren() 代码但传递一个字符串(review.getSubject() 说)而不是一个对象,它可以正常工作,这表明对象解析不适用于updateChildren()。
这对吗?
【问题讨论】:
标签: android firebase firebase-realtime-database