Как найти путь к изображению?

# #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/документы/хранилище/обзор