Firestore文档字段自动添加$app_debug后缀问题求助
Firestore文档字段名末尾带
$app_debug后缀的解决方法 问题根源
你的Shop数据类中所有字段都使用了internal修饰符,Firebase的序列化机制在debug构建模式下,会为internal字段自动生成带有$app_debug后缀的字段名——这是因为Kotlin的internal成员在编译时会被添加模块相关的标识后缀,导致序列化后字段名被篡改。
解决方法
直接移除Shop类中所有字段的internal修饰符即可。Kotlin中类成员默认就是public权限,完全满足Firestore序列化的需求。
修改后的Shop.kt代码示例
@Parcelize data class Shop( var uid: String? = null, var name: String? = null, var owner: String? = null, var address: String? = null, var phone: String? = null, var openTime: String? = null, var website: String? = null, var imageUrl: String? = null, var service: String? = null, var rating: Double? = null, var reviewCount: Long? = null, var location: @RawValue HashMap<String, Any>? = null, var pendingApprove: Boolean? = null, var created: Boolean? = null, var lastModifiedTime: Double? = null, var fcmToken: String? = null ) : Parcelable
补充说明
如果需要保持模块内的访问限制,建议通过模块划分或其他架构方式实现,不要给需要Firestore序列化的字段添加internal修饰符,否则会再次触发后缀问题。
内容的提问来源于stack exchange,提问作者KiluSs
相关产品推荐
相关产品推荐

