首页 > 解决方案 > Firebase toObject 与 ref

问题描述

使用 cloud firestore,您可以将文档转换为对象,document.toObject(YourClass.class);其中类的变量与数据库中的变量匹配。但是,如果数据库中的变量之一是引用,您会在 java 类中使用哪种数据类型?请注意,我不仅需要将其存储在我的数据模型中,还需要检索它并使用表单的覆盖方法对其进行设置:

protected MyDataModel(Parcel in) {
    mString = in.readString();
}

@Override
public void writeToParcel(Parcel parcel, int i) {
    parcel.writeString(mString);
}

如果我使用 DocumentReference,那么在 writeToParcel() 中,我将如何编写它?Parcel in另外,我将如何在受保护的构造函数中读取它?我尝试过writeSerializable()readSerializable()没有DocumentReference实现Serializable

标签: androidfirebasegoogle-cloud-firestore

解决方案


如果需要序列化 ​​DocumentReference,请使用其getPath()方法获取描述文档在数据库中的位置的字符串。要将路径字符串反序列化回 DocumentReference,请使用FirebaseFirestore.getInstance().document(path)

当您需要进行这样的转换时,有时自己编写所有代码比使用 Firestore SDK 提供的内置对象序列化更方便。


推荐阅读