【问题标题】:How to store data from scanner to Firebase Realtime database Flutter如何将数据从扫描仪存储到 Firebase 实时数据库 Flutter
【发布时间】:2021-11-05 21:38:52
【问题描述】:

我想使用 Flutter 将扫描仪中的数据打印到 firebase 实时数据库。我正在扫描一个条形码 pdf417 并在列表视图中打印它,现在我想使用一个按钮将该数据存储到 firebase 实时数据库。

我使用 Flutter 库 https://pub.dev/packages/barcode_scanner 作为参考。

请帮我解决这个问题,我将在下面发布我的代码。 提前感谢您的帮助。

body: Column(
          children: <Widget>[
            previewView,
            //printing scanned results
            Expanded(
              child: ListView.builder(
                itemBuilder: (context, position) {
                  return BarcodeItemWidget(preview.barcodeItems[position]);


                },
                itemCount: preview.barcodeItems.length,

              ),

            ),
            FlatButton(
              color: Colors.green,
              child: Text('Save',),
              onPressed: () {

                // Map<String, dynamic> scaneditem = {
                //   "ScannedItem": BarcodeItemWidget,
                //   "Created On": FieldValue.serverTimestamp()
                // };
                // FirebaseFirestore.instance
                //     .collection("product")
                //     .doc(FirebaseAuth.instance.currentUser.uid)
                //     .set(scaneditem);
                // print(scaneditem);
                databaseRef.push().set({'ScannedItem': preview.barcodeItems,});

              },
            ),
          ],
        ));

【问题讨论】:

    标签: firebase flutter firebase-realtime-database


    【解决方案1】:

    确认您的 databaseRef 有 .child('xxx')

    final DatabaseReference databaseRef =
          FirebaseDatabase.instance.reference().child('YOUR CHILD');
    // confirm that your databaseRef has .child('xxx')
    

    正如 GCP 专家指出的那样(谢谢)。您应该添加如下数据:

    databaseRef.push().set({
      'ScannedItem': preview.barcodeItems
          .map((barCodeItem) => barCodeItem.toJson())
          .toList(),
    });
    

    这是因为preview.barcodeItems实际上是一个List&lt;BarcodeItem&gt; 无法发送到 RTDB 的对象。它有一个.toJson() 方法 帮助将其转换为可以发送的 json。”

    【讨论】:

    • 嗨彼得,你能解释一下你的意思吗?比如我穿什么(“你的孩子”)?
    • 实时数据库中您要添加 scannedItem 的 JSON 文档。
    • 嗨,彼得,我在使用您的代码进行编辑后收到此错误:'com.google.firebase.database.DatabaseException: 不支持序列化数组,请改用列表'
    • 嗨,彼得,我找到了解决方案,我刚刚像这样编辑了您的代码并且它起作用了: databaseRef.push().set({ 'ScannedItem': preview.barcodeItems .map((barCodeItem) => barCodeItem.toJson()) .toString(), });
    • 我想问,最后一件事,现在我如何从数据库中检索该信息并在列表视图中打印出来?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-10
    • 2020-03-22
    • 2021-09-13
    • 2020-02-29
    • 2015-01-13
    • 2019-02-21
    • 2021-11-19
    相关资源
    最近更新 更多