Firebase 使用带有双变量的颤振和带有数字字段类型混淆的Firestore

Firebase 使用带有双变量的颤振和带有数字字段类型混淆的Firestore,firebase,flutter,dart,google-cloud-firestore,Firebase,Flutter,Dart,Google Cloud Firestore,我对扑动和Firestore还不熟悉,我觉得我在如何处理双打和Firebase方面缺少了一些基本的东西。我有Flutter代码读写字符串和int到Firestore,一切都很好。当我建立一个Firestore字段时,数字生活变得复杂了。如果在flatter中,我将一个变量定义为num(并忽略flatterdouble数据类型),则一切正常。如果我将颤振变量定义为double nothing,除非我确保Firestore number字段的值为10.2(或任何带小数点的值)。值为10将使应用程序崩

我对扑动和Firestore还不熟悉,我觉得我在如何处理双打和Firebase方面缺少了一些基本的东西。我有Flutter代码读写字符串和int到Firestore,一切都很好。当我建立一个Firestore字段时,数字生活变得复杂了。如果在flatter中,我将一个变量定义为num(并忽略flatterdouble数据类型),则一切正常。如果我将颤振变量定义为double nothing,除非我确保Firestore number字段的值为10.2(或任何带小数点的值)。值为10将使应用程序崩溃

  • 我是否应该在Flutter中始终使用num而不使用double?有什么影响吗

  • 在从Firestore读取代码(propertyLandArea:snapshot.data['propertyLandArea']?10.5,)的情况下,我应该进行检查还是以某种方式确保propertyLandArea被分配了一个双精度。使用诸如snapshot.data['propertyLandArea'].toDouble之类的简单方法是不可能的

  • 我应该只使用int,并且知道所需的小数位数,以便能够正确显示和保存(如果我没有忘记在某个地方进行转换的话)


  • 我有好几次面对这个问题。我在接收数据时使用了
    casting
    number
    转换为
    double
    ,在保存时使用了
    double
    并将firebase转换为
    number

    1) 我个人不会使用数字,因为若你们想离开firebase,你们必须转换你们的模型。我认为你不会有任何其他影响

    2) 我认为没有必要检查。如果要确保收到的是double,可以对安全规则进行验证

    3) 不。正如你所说,你可以很容易地忘记它,在某个地方改变它,你的问题很容易解决,你永远不知道你可以在哪里使用这些额外的信息