Skip to content

Commit

Permalink
upload image to firebase storage
Browse files Browse the repository at this point in the history
  • Loading branch information
bamboo-wood committed Apr 10, 2023
1 parent 88030ce commit cd9b3a7
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 32 deletions.
13 changes: 11 additions & 2 deletions lib/pages/setting_profile_page.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import 'dart:io';

import 'package:firebase_storage/firebase_storage.dart';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';

Expand All @@ -13,6 +14,7 @@ class SettingProfilePage extends StatefulWidget {
class _SettingProfilePageState extends State<SettingProfilePage> {
File? image;
final ImagePicker _picker = ImagePicker();
String imagePath = '';

Future<void> selectImage() async {
final XFile? pickedFile = await _picker.pickImage(source: ImageSource.gallery);
Expand All @@ -23,6 +25,12 @@ class _SettingProfilePageState extends State<SettingProfilePage> {
}
}

Future<void> uploadImage() async {
final ref = FirebaseStorage.instance.ref().child('profileImage').child('profileImage.jpg');
final storedImage = await ref.putFile(image!);
imagePath = await storedImage.ref.getDownloadURL();
}

@override
Widget build(BuildContext context) {
return Scaffold(
Expand Down Expand Up @@ -53,8 +61,9 @@ class _SettingProfilePageState extends State<SettingProfilePage> {
child: Container(
alignment: Alignment.center,
child: ElevatedButton(
onPressed: () {
selectImage();
onPressed: () async {
await selectImage();
await uploadImage();
},
child: const Text('Select Image'),
),
Expand Down
2 changes: 2 additions & 0 deletions macos/Flutter/GeneratedPluginRegistrant.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,12 @@ import Foundation

import cloud_firestore
import firebase_core
import firebase_storage
import shared_preferences_foundation

func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
FLTFirebaseFirestorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseFirestorePlugin"))
FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin"))
FLTFirebaseStoragePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseStoragePlugin"))
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
}
84 changes: 54 additions & 30 deletions pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ packages:
dependency: transitive
description:
name: _flutterfire_internals
sha256: cb3a948a1eebbf8efd987c43f95418269930e912a88bc7b6a5a7658423133635
sha256: f175bc1414e4edf8c5b83372c98eeabecf8353f39c9da423c2cfdf1f1f508788
url: "https://pub.dev"
source: hosted
version: "1.0.17"
version: "1.1.0"
async:
dependency: transitive
description:
Expand Down Expand Up @@ -45,26 +45,26 @@ packages:
dependency: "direct main"
description:
name: cloud_firestore
sha256: cb49dd8aab9700766fb8a33a4328306f1b9b555ea6efb5fd3b1a55d14af2d2ca
sha256: "3a2dba23d7d084a2d3c2dfd240d2122908cca40bab2d142f7e107f40df174ab5"
url: "https://pub.dev"
source: hosted
version: "4.4.4"
version: "4.5.0"
cloud_firestore_platform_interface:
dependency: transitive
description:
name: cloud_firestore_platform_interface
sha256: "21f8c6ebe74cab9bb28ecfcf1688813114d52b87b9b98e0bc8b23dd95a1d8e7b"
sha256: "29349a0687bc31290ab81d1de2b1cdadb40d0ea3ab30d247323c6c5be0d4c6fc"
url: "https://pub.dev"
source: hosted
version: "5.11.4"
version: "5.12.0"
cloud_firestore_web:
dependency: transitive
description:
name: cloud_firestore_web
sha256: "57389e42341c5162861b505bfe2419112030f55d5efae607fad2625e5384715e"
sha256: bc1fbcd6287acedded1139c9b13cfd47e792d5198f130f98759464839ea510a7
url: "https://pub.dev"
source: hosted
version: "3.3.4"
version: "3.4.0"
collection:
dependency: transitive
description:
Expand Down Expand Up @@ -117,26 +117,50 @@ packages:
dependency: "direct main"
description:
name: firebase_core
sha256: "1c121a478af23755b0b93fd4aa70d3bd32a587dd51ef0a3979091ac0d2317d32"
sha256: ed611fb8e67e43ecc7956f242cecca383d87cf71aace27287aa5dd4bdba4ac07
url: "https://pub.dev"
source: hosted
version: "2.7.1"
version: "2.9.0"
firebase_core_platform_interface:
dependency: transitive
description:
name: firebase_core_platform_interface
sha256: "5615b30c36f55b2777d0533771deda7e5730e769e5d3cb7fda79e9bed86cfa55"
sha256: "0df0a064ab0cad7f8836291ca6f3272edd7b83ad5b3540478ee46a0849d8022b"
url: "https://pub.dev"
source: hosted
version: "4.5.3"
version: "4.6.0"
firebase_core_web:
dependency: transitive
description:
name: firebase_core_web
sha256: "0c1cf1f1022d2245ac117443bb95207952ca770281524d2908e323bc063fb8ff"
sha256: "347351a8f0518f3343d79a9a0690fa67ad232fc32e2ea270677791949eac792b"
url: "https://pub.dev"
source: hosted
version: "2.2.2"
version: "2.3.0"
firebase_storage:
dependency: "direct main"
description:
name: firebase_storage
sha256: a27909491c25acef90acc932be4d87bafb9d33fb98678edd2f81eaec9568a109
url: "https://pub.dev"
source: hosted
version: "11.1.0"
firebase_storage_platform_interface:
dependency: transitive
description:
name: firebase_storage_platform_interface
sha256: f254e064890df4ee588f10bea06d679e047018910451a4bc3c529b9791adb0a9
url: "https://pub.dev"
source: hosted
version: "4.2.0"
firebase_storage_web:
dependency: transitive
description:
name: firebase_storage_web
sha256: b6d3c104fecafdce5fe1795306d33856c9a11fa76f73fe7eb062430fc151d686
url: "https://pub.dev"
source: hosted
version: "3.4.0"
flutter:
dependency: "direct main"
description: flutter
Expand Down Expand Up @@ -332,58 +356,58 @@ packages:
dependency: "direct main"
description:
name: shared_preferences
sha256: ee6257848f822b8481691f20c3e6d2bfee2e9eccb2a3d249907fcfb198c55b41
sha256: "858aaa72d8f61637d64e776aca82e1c67e6d9ee07979123c5d17115031c1b13b"
url: "https://pub.dev"
source: hosted
version: "2.0.18"
version: "2.1.0"
shared_preferences_android:
dependency: transitive
description:
name: shared_preferences_android
sha256: ad423a80fe7b4e48b50d6111b3ea1027af0e959e49d485712e134863d9c1c521
sha256: "8304d8a1f7d21a429f91dee552792249362b68a331ac5c3c1caf370f658873f6"
url: "https://pub.dev"
source: hosted
version: "2.0.17"
version: "2.1.0"
shared_preferences_foundation:
dependency: transitive
description:
name: shared_preferences_foundation
sha256: "1e755f8583229f185cfca61b1d80fb2344c9d660e1c69ede5450d8f478fa5310"
sha256: cf2a42fb20148502022861f71698db12d937c7459345a1bdaa88fc91a91b3603
url: "https://pub.dev"
source: hosted
version: "2.1.5"
version: "2.2.0"
shared_preferences_linux:
dependency: transitive
description:
name: shared_preferences_linux
sha256: "3a59ed10890a8409ad0faad7bb2957dab4b92b8fbe553257b05d30ed8af2c707"
sha256: "9d387433ca65717bbf1be88f4d5bb18f10508917a8fa2fb02e0fd0d7479a9afa"
url: "https://pub.dev"
source: hosted
version: "2.1.5"
version: "2.2.0"
shared_preferences_platform_interface:
dependency: transitive
description:
name: shared_preferences_platform_interface
sha256: "824bfd02713e37603b2bdade0842e47d56e7db32b1dcdd1cae533fb88e2913fc"
sha256: fb5cf25c0235df2d0640ac1b1174f6466bd311f621574997ac59018a6664548d
url: "https://pub.dev"
source: hosted
version: "2.1.1"
version: "2.2.0"
shared_preferences_web:
dependency: transitive
description:
name: shared_preferences_web
sha256: "0dc2633f215a3d4aa3184c9b2c5766f4711e4e5a6b256e62aafee41f89f1bfb8"
sha256: "74083203a8eae241e0de4a0d597dbedab3b8fef5563f33cf3c12d7e93c655ca5"
url: "https://pub.dev"
source: hosted
version: "2.0.6"
version: "2.1.0"
shared_preferences_windows:
dependency: transitive
description:
name: shared_preferences_windows
sha256: "71bcd669bb9cdb6b39f22c4a7728b6d49e934f6cba73157ffa5a54f1eed67436"
sha256: "5e588e2efef56916a3b229c3bfe81e6a525665a454519ca51dbcc4236a274173"
url: "https://pub.dev"
source: hosted
version: "2.1.5"
version: "2.2.0"
sky_engine:
dependency: transitive
description: flutter
Expand Down Expand Up @@ -457,10 +481,10 @@ packages:
dependency: transitive
description:
name: win32
sha256: c9ebe7ee4ab0c2194e65d3a07d8c54c5d00bb001b76081c4a04cdb8448b59e46
sha256: a6f0236dbda0f63aa9a25ad1ff9a9d8a4eaaa5012da0dc59d21afdb1dc361ca4
url: "https://pub.dev"
source: hosted
version: "3.1.3"
version: "3.1.4"
xdg_directories:
dependency: transitive
description:
Expand Down
1 change: 1 addition & 0 deletions pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ dependencies:
cloud_firestore: ^4.4.4
shared_preferences: ^2.0.18
image_picker: ^0.8.7+1
firebase_storage: ^11.1.0

dev_dependencies:
flutter_test:
Expand Down

0 comments on commit cd9b3a7

Please sign in to comment.