我试图使用以下包按距离过滤Firestore集合。
https://github.com/fluttercommunity/firestore_helpers
参考他们的例子,他们使用jaguar_serializer将从Firestore接收到的数据转换为Location类。我已经在我的应用中实现了他们的getDataInArea函数,但我目前被卡住了,因为我使用的是json_serializable。
我已经看了一下周围,发现下面的链接中有一个关于如何使用built_value处理GeoPoint的建议。
https://github.com/google/built_value.dart/issues/417#issuecomment-391661750
所以我想知道是否有一种方法可以实现像jaguar_serializer和built_value中显示的那样,但使用json_serializable包。
我猜一种方法是使用@JsonKey(fromJson: , toJson: )
,但我不太确定如何使用它。
4条答案
按热度按时间b09cbbtk1#
经过更多的挖掘和试图理解事情是如何运作的。我在课堂上写了下面的内容,设法解决了我的问题。
字符串
我想这个想法只是不对GeoPoint对象进行任何更改。无论如何,我很乐意听到它,这是正确的方式,或者有一个更好的方式来做到这一点。干杯!
368yc8dk2#
Firestore返回的类型是GeoPoint,您可以使用JsonConverter将其传递:
字符串
之后,注解参数:第一个月
qco9c6ql3#
你的办法对我不起作用。如果你在你的对象上尝试jsonEncode,它会失败。欢迎其他人的反馈。这是我的建议:
字符串
第一个月
型
0ve6wy6x4#
那些仍然面临问题的人应该使用下面的Helper类方法
字符串
在你的模型类中,只需要标记
location
字段的Annotators即可。型
在
fromJsonGeoPoint
方法中,它是可空方法,我将LAT
和LONG
的默认值用作0.000