# #firebase #flutter #google-cloud-firestore
Вопрос:
Мне нужно добавить путь к изображению подписи в качестве URL-адреса в Firestore, но я не могу определить путь к этому изображению подписи. Я не хочу сохранять изображение в галерее, но прямо в firebase, как мне это сделать? Может быть, временно храните его где-нибудь, пока я не отправлю его на базу огня. Или я могу сохранить байты в Firebase и получить изображение обратно? Я новичок в флаттере, пожалуйста, помогите.
Это код, который я использовал до сих пор:
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;
}
}
Комментарии:
1. Если вы хотите сохранить изображение в Firebase, ознакомьтесь с firebase.flutter.dev/документы/хранилище/обзор