调用时
FirebaseFirestore.getInstance().collection("myCollection").document("doc1").update("field1",myObject);
我得到错误:
IllegalArgumentException: Invalid data. Unsupported type: com.myProg.objects.MyObject (found in field field1)
尽管我可以将 myObject 添加到 firestore,但它是 myDoc 的一部分,使用 Set 方法没有问题。
MyObject 类(最简单的例子):
public class MyObject{
public int i;
}
编辑: 尝试之前我的数据库结构:
myCollection ->
doc1: field0 - "3" field1 - null
没有field1也试过
最佳答案
所以目前唯一的更新方式是使用 map 。在你的情况下它应该看起来像
Map<String, Object> updateMap = new HashMap();
updateMap.put("field1.i", myObject.i);
FirebaseFirestore.getInstance().collection("myCollection")
.document("doc1").update(updateMap);
我认为 Firestore 应该真正更新 API,以促进作为一个整体更新嵌套对象。
关于android - Firestore 更新失败,出现 IllegalArgumentException : Invalid data. 不支持的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48288288/