android - Firestore 更新失败,出现 IllegalArgumentException : Invalid data. 不支持的类型

标签 android firebase firebase-security google-cloud-firestore

调用时

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/

相关文章:

android - 使用 FFmpeg 时如何减小 apk 大小

java - Activity 不会以 "startActivity();"开始

node.js - TypeError : firebase. 函数不是函数

firebase - Firestore 安全规则仅允许特定字段

android - Firebase Firestore 访问规则 - 比较资源数据

java - Android中通过代码或xml生成的界面?

javascript - Android-使用 addJavaScriptInterface 从 Javascript 返回一个值

javascript - 从 Firebase 解析 JSON 对象并使用键值对生成内容

swift - 即使数据存在,Firebase 查询也会返回 null

angularjs - 如何捕获 firebase、Angularfire 中的安全规则失败?