많이들 막히실거라 생각하고 채신문법 공유합니다.
376
작성한 질문수 1
Create_page.dart
import 'dart:io';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_storage/firebase_storage.dart';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
class CreatePage extends StatefulWidget {
final User user;
CreatePage(this.user);
@override
_CreatePageState createState() => _CreatePageState();
}
class _CreatePageState extends State<CreatePage> {
final textEditingController = TextEditingController();
@override
void dispose() {
textEditingController.dispose();
super.dispose();
}
File _image;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: _buildAppbar(),
body: _buildBody(),
floatingActionButton: FloatingActionButton(
onPressed: _getImage,
child: Icon(Icons.add_a_photo),
),
);
}
Widget _buildAppbar() {
return AppBar(
actions: <Widget>[
IconButton(
icon: Icon(Icons.send),
onPressed: (){
final firebaseStorageRef = FirebaseStorage.instance
.ref()
.child('post')
.child('${DateTime
.now()
.millisecondsSinceEpoch}.png');
final task = firebaseStorageRef.putFile(
_image, SettableMetadata(contentType: 'image/png')
);
task.then((TaskSnapshot snapshot){
var downloadUrl=snapshot.ref.getDownloadURL();
downloadUrl.then((uri){
var doc = FirebaseFirestore.instance.collection('post').doc();
doc.set({
'id': doc.id,
'photoUrl': uri.toString(),
'contents': textEditingController.text,
'email':widget.user.email,
'displayName':widget.user.displayName,
'userPhotoUrl':widget.user.photoURL
});
});
}).then((value) => Navigator.pop(context));
},
)
],
);
}
Widget _buildBody() {
return SingleChildScrollView(
child: Column(
children: <Widget>[
_image == null ? Text('No Image') : Image.file(_image),
TextField(
decoration: InputDecoration(hintText: '내용을 입력하세요'),
controller: textEditingController,
)
],
),
);
}
final picker = ImagePicker();
Future _getImage() async {
final pickedFile = await picker.getImage(source: ImageSource.gallery);
setState(() {
if (pickedFile != null) {
_image = File(pickedFile.path);
} else {
print('No image selected.');
}
});
}
//
// Future<void> _getImage() async {
// File image = await ImagePicker.pickImage(
// source: ImageSource.gallery
// );
// setState(() {
// _image = image;
// });
// }
}
=========/*pubspec.yaml*===========
cupertino_icons: ^1.0.1
image_picker: ^0.6.7+17
flutter_signin_button: ^0.2.5
google_sign_in: ^4.0.0
firebase_auth: ^0.18.4+1
firebase_core: ^0.5.3
cloud_firestore: ^0.14.4
firebase_storage: ^5.2.0
=====* 수정된 문법 *===
fireStore는 임포트 하는 방법은 같으나
호출방법은 기존
FireStore에서 FirebaseFireStore로 변경되었습니다.
상단 final FirebaseUser user
auth 사용법은
FirebaseUser user -> User user로 사용하시면 됩니다.
그 외에 document는 doc로 변경되었으며
이미지 피커같은 경우는 제 소스대로 사용하시면 됩니다.
답변 2
0
혹여나 코드 필요하시면
https://github.com/supercoder95/instagramCloneOne
보고 참고해주시면 되겠습니다.
ios는 제가 뭘 잘못건드렸는지 앱이 자꾸 팅기는데 공부좀 해서 찾아야할 것 같네요..
과거 ai없을때 듣고 다시 듣는 중인데
1
55
1
40번 수업이 완료가 되지 않아요.
0
62
1
최신버전 firebase_ui_auth 할때 EmailAuthProvider 오류 잡는 방법
0
158
1
애뮬레이터로 main.dart를 실행하면 컴퓨터가 멈춥니다.
0
330
2
혹시 재촬영 계획이 있으신가요?
0
249
1
애뮬레이터 Intel HAXM 다운로드가 안돼요
0
558
2
에뮬레이터 홈화면
0
259
1
종속성 충돌 질문
0
341
1
plugin 중에서 에러 발생시 발생한 코드 위치에 바로 에러 표시해주는 기능 있을까요?
0
426
1
firebase option 오류
0
374
2
alt+enter 가 맥북에서는 option enter로 알고 있는데 단축키가 먹히지 않습니다 ㅜㅜ
0
1460
11
파이어베이스 연결시 갑자기 다른 오류가 발생했어요 ㅠㅠ
0
409
1
Failed assertion: line 246 pos 15: 'items.length >= 2': is not true.
0
1319
1
Firebase로 이메일 로그인 기능 구현
0
355
1
GridView에 데이터가 표시가 안됩니다.
0
298
1
The Android Gradle plugin supports only Kotlin Gradle plugin version 1.5.20 and higher. 해결법을 모르겠습니다
0
6895
4
안드로이드 에뮬레이터 실행오류
1
1010
1
firebase 연동 중 오류 질문
0
468
1
05. AccountPage UI 작성강의 설명문의
0
371
1
firestore에서 List<String>을 받아오고 싶을 때
0
543
1
firebase 이메일 로그인 설정 관련 오류 문의의 건
0
1091
1
기본위젯
0
2731
1
firebase에 upload 에러가 발생했습니다
0
1277
3
디버그 서명 인증서 SHA-1가 구해지지 않습니다.
1
319
1





