본문 바로가기

Firebase

[FIREBASE] 보안 규칙 설정 Cloud Firebase 보안 규칙은 악의적인 사용자로부터 데이터를 보호한다. 이를 통해 모든 사용자의 엑세스를 거부할 수 있고, 규칙에 따라 모든 사용자에게 포괄적인 엑세스 권한을 부여하는 것도 가능하다. 가장 좋은 솔류션 😀 - 인증된 사용자 엑세스 Cloud Firestore 보안 규칙에서 사용자의 로그인 여부를 확인하지만 해당 인증을 기반으로 액세스를 추가로 제한하지 않는 경우가 있습니다. 규칙 중 하나라도 auth != null이 포함되어 있으면 로그인한 사용자에게 데이터에 대한 액세스 권한을 부여할지 확인하세요. service cloud.firestore { match /databases/{database}/documents { // Allow only authenticated content.. 더보기
[FIREBASE] IOS, Android Firebase ERROR 없이 한번에 연결하기 지금까지 수많은 오류와 해결책을 찾은 끝에 드디어 오류없이 Firebase를 바로 연결할 수 있는 방법을 찾았다.. 크게 다른건 없고, Firebase에 APP 등록할 때 기본적으로 했던 절차는 따른다. 그리고 나서 이걸 해준다. (정말 오류 때문에 많이 힘들었다.. 😂) firebase core 추가하기! 왜 인지는 모르겠지만 firebase core가 없을 때 맨날 오류가 떴었다. main 에서 코드 추가해주기 아마 이 코드는 전부 알고 있을 것 같다! 여기서 반드시 Firebase.initalizeApp() 을 해줘야 하고, (중요) widgetsFlutterBinding 뒤에 와야한다..!! void main() async { WidgetsFlutterBinding.ensureInitialized.. 더보기
[Firebase] Firebase Storage Firebase Storage 사용법! ImagePicker package로 image를 가져오고 그 이미지를 File()에 넣어서 File 변수로 만들어준다. 중요!! 이미지를 업로드 할 때에는 reference가 필요하고 이미지를 가져올 때에는 URL로 가져올 수 있다. 이때도 reference가 필요하다. reference는 가져올려고 하는 파일의 경로를 말한다. File _image; Future getImage() async { final image = await ImagePicker().getImage(source: ImageSource.gallery); setState(() { _image = File(image.path); }); } /// basename으로 파일의 온전한 이름을 Get .. 더보기
[Firebase] Firebase usage example One-time Read - get() Collection 또는 document를 한번만 콜 하려면, Query.get or DocumentReference.get method를 사용하면 됩니다! class GetUserName extends StatelessWidget { final String documentId; GetUserName(this.documentId); @override Widget build(BuildContext context) { CollectionReference users = FirebaseFirestore.instance.collection('users'); return FutureBuilder( future: users.doc(documentId).get(), builder.. 더보기
[Firebase] Firebase property 정리 Reference? Qurey? Snapshot? 다음과 같은 도표를 참고하면 쉽게 이해할 수 있다. Collection Collection에서는 크게 3가지 방향으로 갈린다. 1-1. Query .orderBy(), where().. 을 통해서 Query를 만들고 .get()을 통해 서버통신으로 데이터를 가져온다. (.get()은 데이터를 한번만 가져오라는 Query이다) => Return 값은 QuerySnapshot 1-2. snapshot() 이 내용은 Real-time Read를 위한 Stream을 받아오는 함수이다. => Return 값은 Stream 이다. 1. QuerySnapshot => snapshot() 사용할 때 Collection으로 부터 Query, snapshot을 통해 받아온.. 더보기
[Firebase] IOS 연결하기 Firebase IOS 연결하기! 우선 Firebase 홈페이지로 이동합니다! 이동해서 아래와 같은 Screen이 나왔다면 시작하기를 눌러줍니다! 1. 앱 추가 Button에서 IOS를 눌러줍니다. IOS+ 라고 적혀진 아이를 클릭해주면 됩니다. 2. 안내에 따라서 다음과 같은 설정을 해줍니다. 2.1. App Package 입력 1) APP Pakakge는 아래 명령어로 확인 할 수 있습니다. $ open ios/Runner.xcworkspace 2) App developer ID : 필수는 아닙니다! 2.2. 구성파일 다운로드 1. GoogleService-Info.plist 다운로드 후 Runner/Runner 에 넣기 주의할 점은 반드시 Xcode를 통해서 넣어야 합니다. 2. Create Fo.. 더보기
[Firebase] Android 연결하기 Firebase 안드로이드 연결하기! 우선 Firebase 홈페이지로 이동합니다! 이동해서 아래와 같은 Screen이 나왔다면 시작하기를 눌러줍니다. 1. 앱 추가 Button에서 Android를 눌러줍니다. 안드로이드 처럼 생긴 아이가 나올텐데 그 아이를 클릭해줍니다. 2. 안내에 따라서 다음과 같은 설정을 해줍니다. 아래와 같은 화면이 나올텐데 3가지 등록이 필요합니다! 1) Android Package 이름: Android - src - buildgradle 안에서 찾을 수 있습니다. 2) 앱 닉네임: 맘대로 설정 3) 디버그 서명 인증서(SHA-1): 필수는 아닌데 쓰는게 좋습니다. keytool -exportcert -list -v -alias androiddebugkey -keystore ~/.. 더보기