Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import 'package:flutter/material.dart';
- import 'package:firebase_database/firebase_database.dart';
- import 'package:flutter_training/home.dart';
- import 'dart:async';
- import 'dart:io';
- import 'package:image_picker/image_picker.dart';
- import 'package:firebase_storage/firebase_storage.dart';
- class PostAdd extends StatefulWidget {
- @override
- _PostAddState createState() => _PostAddState();
- }
- class _PostAddState extends State<PostAdd> {
- String postText;
- final textController = TextEditingController();
- File _imageFile;
- File _image;
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- appBar: AppBar(
- title: Text('Post Add'),
- actions: <Widget>[
- FlatButton(
- child: Text('Save'),
- textColor: Colors.white,
- onPressed: _postSave,
- ),
- ],
- ),
- body: ListView(
- padding: EdgeInsets.all(16.0),
- children: <Widget>[
- Container(
- child: Column(
- children: <Widget>[
- TextField(
- decoration: InputDecoration(
- labelText: 'Write your post...',
- border: OutlineInputBorder(
- borderRadius: BorderRadius.circular(5.0),
- ),
- ),
- maxLength: 250,
- maxLines: 6,
- controller: textController,
- //onSubmitted: (value) => postText = value,
- ),
- Row(
- children: <Widget>[
- IconButton(
- icon: Icon(
- Icons.camera_alt,
- color: Colors.grey,
- ),
- onPressed: _openCamera,
- ),
- IconButton(
- icon: Icon(
- Icons.image,
- color: Colors.grey,
- ),
- onPressed: _openGallery,
- ),
- ],
- ),
- _imageFile != null ? buildImage() : Text(''),
- // Image.file(_imageFile),
- ],
- ),
- ),
- ],
- ));
- }
- Image buildImage() {
- // if (_imageFile != null) {
- return Image.file(_imageFile);
- // }
- }
- void _postSave() {
- StorageReference storageRef =
- FirebaseStorage.instance.ref().child('myimage.jpg');
- if (_image != null) {
- StorageUploadTask task = storageRef.putFile(_image);
- // if(task.isSuccessful) {
- var downloadUrl = storageRef.getDownloadURL();
- print('downloadUrl: ${downloadUrl.toString()}');
- var postRef = FirebaseDatabase.instance.reference().child('posts');
- try {
- postRef.push().set({
- 'content': textController.text,
- });
- } catch (e) {
- print('Error: ${e}');
- }
- textController.clear();
- Navigator.pop(
- context,
- MaterialPageRoute(builder: (context) => HomePage()),
- );
- // } else {
- // print('task is not successful...');
- // }
- }
- }
- void _openCamera() async {
- print('open camera...');
- try {
- _imageFile = await ImagePicker.pickImage(source: ImageSource.camera);
- print('path: ${_imageFile}');
- setState(() {
- _image = _imageFile;
- });
- } catch (e) {
- print('Error: ${e}');
- }
- }
- void _openGallery() async {
- print('open gallery...');
- try {
- _imageFile = await ImagePicker.pickImage(source: ImageSource.gallery);
- print('path: ${_imageFile.path}');
- setState(() {
- _image = _imageFile;
- });
- } catch (e) {
- print('Error: ${e}');
- }
- }
- }
Add Comment
Please, Sign In to add comment