如何将数据从扫描仪存储到Firebase实时数据库Flutter



我想使用Flutter将数据从扫描仪打印到firebase实时数据库。我正在扫描条形码pdf417,并在listview中打印它,现在我想使用一个按钮将该数据存储到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,});
},
),
],
));

确认您的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<BarcodeItem>对象,该对象不能发送到RTDB。它有一个.toJson()方法帮助将其转换为json,然后可以发送。">

最新更新