android - 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
。
解决方案
如果需要序列化 DocumentReference,请使用其getPath()方法获取描述文档在数据库中的位置的字符串。要将路径字符串反序列化回 DocumentReference,请使用FirebaseFirestore.getInstance().document(path)。
当您需要进行这样的转换时,有时自己编写所有代码比使用 Firestore SDK 提供的内置对象序列化更方便。
推荐阅读
- c# - 从 VisualStudio 扩展添加解决方案项
- java - PDFBox 页面旋转 - 缩放的图像尺寸减小
- javascript - type=checkbox 的最终表单字段不适用于格式道具
- html - 奇怪的 Chrome 问题表边框顶部
- php - Laravel if 查询中的语句
- sql - 使用 Null 进行左连接的 SQL 案例
- python - 如何在 Windows 中成功安装 numpy
- python - 在 Python 的类中将列表从一个函数传递到另一个函数
- python - Python从numpy数组中打印单个值
- javascript - 除了表头之外的表不起作用html