-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathImagePicker.dart
More file actions
81 lines (72 loc) · 2.2 KB
/
ImagePicker.dart
File metadata and controls
81 lines (72 loc) · 2.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import 'dart:io';
import 'package:firebase_storage/firebase_storage.dart';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
class ImagePickerPage extends StatefulWidget {
const ImagePickerPage({Key? key}) : super(key: key);
@override
_ImagePickerPageState createState() => _ImagePickerPageState();
}
class _ImagePickerPageState extends State<ImagePickerPage> {
String imagePath = "";
String userPhone = "9999988888";
final ImagePicker _picker = ImagePicker();
Future<void> uploadFile(String filePath) async {
File file = File(filePath);
try {
await FirebaseStorage.instance
.ref('profile-pics/'+userPhone+'.png')
.putFile(file);
print("UPLOAD SUCCESS");
} on FirebaseException catch (e) {
print("UPLOAD FAILED");
}
}
getImage() async{
var image = await FirebaseStorage.instance
.ref('profile-pics/'+userPhone+'.png').getDownloadURL();
print("Image URL -> "+image);
return image;
}
@override
Widget build(BuildContext context) {
return Container(
padding: EdgeInsets.all(16),
child: FutureBuilder(
future: getImage(),
builder: (context, snapshot) {
if(snapshot.hasData){
return Column(
children: [
// Image.network(imagePath),
SizedBox(
height: 10,
),
InkWell(
onTap: () async {
final XFile? image =
await _picker.pickImage(source: ImageSource.gallery);
uploadFile(image!.path);
setState(() {
imagePath = snapshot.data.toString();
// return imagePath;
});
},
child: CircleAvatar(
backgroundColor: null,
radius: 100,
backgroundImage: NetworkImage(imagePath),
),
),
],
);
}
else{
print("Loading data");
return CircularProgressIndicator();
}
},
),
);
}
}