Flutter Firebase Firestore和x27的类型安全实施;在哪里`

Flutter Firebase Firestore和x27的类型安全实施;在哪里`,flutter,google-cloud-firestore,code-generation,Flutter,Google Cloud Firestore,Code Generation,我正在编写一个类型安全构建器包来封装名为的Firestore原语。我目前正在用我自己的自定义FireQuery.where包装一个文件,我希望它是完全类型安全的。Firestore其中有一个函数声明 querywhere( 动力场{ 动态等质量, 动态isNotEqualTo, 动态无孤岛, 动态Islessthan或Qualto, 动态比, 动力比质量更好, 动态排列内容, 列表?ArrayContainesAny, 列表?其中, 列表?不在哪里, 布尔?是空的, }) {/*...*/}

我正在编写一个类型安全构建器包来封装名为的Firestore原语。我目前正在用我自己的自定义
FireQuery.where
包装一个文件,我希望它是完全类型安全的。Firestore
其中
有一个函数声明

querywhere(
动力场{
动态等质量,
动态isNotEqualTo,
动态无孤岛,
动态Islessthan或Qualto,
动态比,
动力比质量更好,
动态排列内容,
列表?ArrayContainesAny,
列表?其中,
列表?不在哪里,
布尔?是空的,
}) {/*...*/}
但当我围绕一个特定的模型或文档生成代码时,我知道所有可能的字段及其类型,所以我不希望任何内容是动态的。然而,我想不出一种方法来利用它,或者函数调用可能是什么样子

下面是一个考虑到我有一个用户文档的示例

类UserDoc{ 最终积分; 最后的字符串城市; UserDoc(this.age,this.city); } 和一个用户查询:

///生成的代码
类UserQuery实现FireQuery{
// ...
用户查询在哪里(
//我知道唯一可能的领域是年龄和城市
//我希望比较器被输入到所选的字段中。
//
//例如,如果用户以某种方式选择了年龄,isEqualTo应该是isEqualTo
) {
//待办事项
}
}
你知道怎么做吗

编辑
我不赞成使用Firestore自带的带转换器的
,并得出了相同的结论,即如果没有分部类或api的重大突破性更改,这是不可能的

您的第一个链接无法工作。你删除了这个项目吗

您正在引用的代码的动态部分可以适应您想要执行的任何查询。因此,如果用户选择年龄,您只需要以下信息:

CollectionReference colref=Firestore.instance
.收集(“用户收集”);
查询名称Query=colref.where('age',isqualto:'TheAgeYouWant');

它将自动设置为年龄值。使用FlatterFire代码的意义在于不必创建您自己的自定义查询,我认为它不会产生任何好处或优势。

是的,该软件包被弃用,取而代之的是
with converter
s。这一变化背后的作者同意,如果作品中没有一些语言特征,目前就不可能有我所想的东西