firebase-database 튜토리얼
firebase-database 시작하기
수색…
비고
이 섹션은 firebase-database가 무엇인지, 그리고 개발자가 그것을 사용하고자하는 이유에 대한 개요를 제공합니다.
또한 firebase-database 내의 큰 주제를 언급하고 관련 주제와 연결됩니다. firebase-database에 대한 문서가 새롭기 때문에 관련 주제의 초기 버전을 만들어야 할 수도 있습니다.
버전
| 플랫폼 SDK | 번역 | 출시일 |
|---|---|---|
| Firebase JavaScript SDK | 3.7.0 | 2017-03-01 |
| Firebase C ++ SDK | 3.0.0 | 2107-02-27 |
| Firebase Unity SDK | 3.0.0 | 2107-02-27 |
| Firebase iOS SDK | 3.14.0 | 2017-02-23 |
| Firebase Android SDK | 10.2 | 2017-02-15 |
| Firebase Admin Node.js SDK | 4.1.1 | 2017-02-14 |
| Firebase Admin Java SDK | 4.1.2 | 2017-02-14 |
Android 프로젝트에 Firebase 추가하기
다음은 Firebase 프로젝트를 만들고 Android 앱과 연결하는 단계입니다.
앱에 Firebase 추가하기
Firebase 콘솔 에서 Firebase 프로젝트를 생성하고 Create New Project를 클릭 하십시오 .
Android 앱에 Firebase 추가를 클릭하고 설정 단계를 따르십시오.
메시지가 나타나면 앱의 패키지 이름을 입력하십시오.
앱이 사용하는 패키지 이름을 입력하는 것이 중요합니다. 이 설정은 Firebase 프로젝트에 앱을 추가 할 때만 설정할 수 있습니다.결국
google-services.json파일을 다운로드하게됩니다. 이 파일은 언제든지 다시 다운로드 할 수 있습니다. (이 파일은 Firebase 콘솔의 프로젝트 설정 아래에 있습니다).프로젝트 폴더로 이동하여 앱 폴더 아래에 google-service.json 파일을 붙여 넣습니다.
다음 단계는 SDK를 추가하여 Firebase 라이브러리를 프로젝트에 통합하는 것입니다.
SDK 추가
Firebase 라이브러리를 자신의 프로젝트 중 하나에 통합하려면 Android Studio 프로젝트를 준비하기위한 몇 가지 기본 작업을 수행해야합니다. 앱에 Firebase를 추가 할 때 이미이 작업을 수행했을 수도 있습니다.
- 루트 수준
build.gradle파일에 google-services 플러그인 을 포함하도록 규칙을 추가하십시오.
buildscript {
// ...
dependencies {
// ...
classpath 'com.google.gms:google-services:3.1.1'
}
}
그런 다음 모듈 Gradle 파일 (일반적으로 app/build.gradle )에서 Gradle 플러그인을 사용하도록 파일 맨 아래에 적용 플러그인 행을 추가합니다.
apply plugin: 'com.android.application'
android {
// ...
}
dependencies {
// ...
compile 'com.google.firebase:firebase-core:9.4.0'//THIS IS FOR ANALYTICS
compile "com.google.firebase:firebase-database:11.0.2"
}
// BELOW STATEMENT MUST BE WRITTEN IN BOTTOM
apply plugin: 'com.google.gms.google-services'
노트:
인증 없이는 데이터를 읽거나 쓸 수 없습니다. 인증없이 원한다면. 데이터베이스 firebase 콘솔에서 규칙을 변경하십시오.
{ "rules": { ".read": true, ".write": true}}
매니페스트에 인터넷 사용 권한 추가
Google Play 서비스 및 Google 저장소 업그레이드
데이터베이스에 간단한 값 쓰기
먼저, 설치와 설정 을 완료하여 앱을 Firebase에 연결하십시오. 그런 다음 수업의 어느 곳에서나 다음과 같이 작성할 수 있습니다.
// Write a message to the database
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");
myRef.setValue("Hello, World!");
Hello, Wold! 를 쓸 것입니다 Hello, Wold! message 노드로, 아래 보이는 것처럼 :
"your-project-parent" : {
"message" : "Hello, World!"
}
설명
FirebaseDatabase database = FirebaseDatabase.getInstance();
위의 코드는 FirebaseDatabase 인스턴스를 추가로 사용할 수 있도록 database 객체에 할당합니다.
DatabaseReference myRef = database.getReference("message");
위의 코드는 myRef 객체를 프로젝트의 부모 (이 예제에서는 "your-project-parent" )의 "message" 하위 요소로 참조합니다. 그래서 그것은 "your-project-parent/message"
myRef.setValue("Hello, World!");
위의 코드는 "Hello, World!" myRef 참조하는 경로에 삽입
맞춤 모델을 데이터 구조에 자동 매핑
당신이 데이터베이스에 몇 가지 데이터를 설정하고 이것과 같은 여러 노드로 구성된 구조를 얻은 후에;
"user" : {
"-KdbKcU2ptfYF2xKb5aO" : {
"firstName" : "Arthur",
"lastName" : "Schopenhauer",
"userName" : "AphorismMan",
"phone" : "+9022-02-1778",
"gender": "M",
"age" : 25
},
"-KdbQFjs9BDviuqQVHjY" : {
"firstName" : "Werner",
"lastName" : "Heisenberg",
"userName" : "whereAmI",
"phone" : "+9005-12-1901",
"gender": "M",
"age" : 75
}
}
당신은 데이터 구조를 분류 할 수 있습니다.
수업 만들기
데이터베이스로 설정할 모델 클래스를 만듭니다.
@IgnoreExtraProperties
public class User {
public String firstName;
public String lastName;
public String userName;
public String phone;
public String gender;
public int age;
public User() {
}
public User(String firstName, String lastName, String userName, String phone, String gender, int age) {
this.firstName = firstName;
this.lastName = lastName;
this.userName = userName;
this.phone = phone;
this.gender = gender;
this.age = age;
}
}
데이터에 매핑 할 모델 클래스를 만들 때 기억해야 할 사항은 다음과 같습니다.
- 빈 생성자가 있어야합니다.
- 변수 / 필드의 범위는 public이어야하며, firebase에서 반환되는 DataSnapshot 은이 필드에 액세스 할 수 있습니다. 그렇게하지 않으면 데이터를 가져올 때 DataSnapshot은 콜백으로 모델에 액세스 할 수 없으므로 예외가 발생합니다.
- 변수 / 필드의 이름은 데이터 구조의 변수 / 필드와 일치해야합니다.
Firebase에 보내기
사용자 개체 만들기
User user = new User ( "Arthur","Schopenhauer","AphorismMan","+9022-02-1778","M",25)
참고 문헌
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
이제 데이터베이스에 대한 참조가 있습니다. databaseReference.child("user") 하여 user 노드를 만듭니다. .push() 를 수행하면 모델에서 "-KdbKcU2ptfYF2xKb5aO", "-KdbQFjs9BDviuqQVHjY" 와 같이 임의로 생성 된 고유 ID 아래에 위치합니다.
databaseReference.child("user").push().setValue(user, new DatabaseReference.CompletionListener() {
@Override
public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
Toast.makeText(getActivity(), "User added.", Toast.LENGTH_SHORT).show();
}
});
특정 키 아래에 데이터를 설정하려면 .push() 대신 .child("yourSpecificKey") 사용하십시오.
databaseReference.child("user").child("yourSpecificKey").setValue(user,...