我需要在 Firestore 中添加签名图片的路径作为 URL,但我无法弄清楚这个签名图片的路径。我不想将图像保存到图库中,而是直接保存到 firebase,我该怎么做?也许将它暂时存储在某个地方,直到我将它发送到 firebase。或者我可以将字节保存到 Firebase 并取回图像吗?我是 Flutter 新手,请帮忙。
这是我目前使用的代码:
import 'package:flutter/material.dart';
import 'package:signature/signature.dart';
import 'RegistrationPage.dart';
import 'dart:io';
class signaturePage extends StatefulWidget {
@override
_signaturePageState createState() => _signaturePageState();
}
class _signaturePageState extends State<signaturePage> {
SignatureController controller;
File imageFile;
@override
void initState() {
super.initState();
controller = SignatureController(
penColor: Colors.white,
penStrokeWidth: 5,
);
}
@override
void dispose() {
super.dispose();
controller.dispose();
}
@override
Widget build(BuildContext context) => Scaffold(
body: Column(
children: [
Signature(controller: controller, backgroundColor: Colors.black,),
Spacer(),
buildButtons(context),
],
)
);
Widget buildButtons (BuildContext context) => Container(
color: Colors.black,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
buildCheck(context),
buildClear(context),
],
),
);
Widget buildCheck(BuildContext context) => IconButton(
iconSize: 36,
icon: Icon(Icons.check, color: Colors.green),
onPressed: () async{
if(controller.isNotEmpty){
final signature = await exportSignature();
//print(imageFile);
// await Navigator.push(context, MaterialPageRoute(
// builder: (context) => RegistrationScreen(file: signature)));
}
},
);
Widget buildClear(BuildContext context) => IconButton(
iconSize: 36,
icon: Icon(Icons.close, color: Colors.red),
onPressed: () => controller.clear(),
);
Future exportSignature() async {
final exportController = SignatureController(
penStrokeWidth: 5,
penColor: Colors.black,
exportBackgroundColor: Colors.white,
points: controller.points,
);
final signature = exportController.toImage();
exportController.dispose();
return signature;
}
}