问题描述: 在Android Firestore中,当尝试更新数组中的对象时,可能会遇到“不支持的类型”错误。
解决方法: 出现此错误的原因是Firestore无法直接更新数组中的对象。要解决这个问题,可以按照以下步骤进行操作:
DocumentReference documentRef = db.collection("collectionName").document("documentId");
documentRef.get().addOnSuccessListener(new OnSuccessListener() {
@Override
public void onSuccess(DocumentSnapshot documentSnapshot) {
if (documentSnapshot.exists()) {
YourObject object = documentSnapshot.toObject(YourObject.class);
// 更新对象的属性
object.setSomeProperty("new value");
// 将更新后的对象重新写入文档
documentRef.set(object)
.addOnSuccessListener(new OnSuccessListener() {
@Override
public void onSuccess(Void aVoid) {
// 更新成功
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// 更新失败
}
});
}
}
});
在上面的示例中,首先获取了要更新的文档的引用。然后,使用get()
方法获取文档的当前数据,并将其转换为自定义对象。接下来,更新对象的属性。最后,使用set()
方法将更新后的对象重新写入文档。
这样就可以成功更新数组中的对象了,而不会出现“不支持的类型”错误。