728x90
반응형
파이어베이스 실시간 데이터베이스에 값을 저장하는 예제입니다.
코드 설명은 주석으로 써놨습니다!
파이어베이스 연동은 아래 링크에서 확인하시길 바랍니다.
https://fjdkslvn.tistory.com/2
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<EditText
android:id="@+id/edit1"
android:layout_width="match_parent"
android:layout_height="50dp"></EditText>
<EditText
android:id="@+id/edit2"
android:layout_width="match_parent"
android:layout_height="50dp"></EditText>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btn"
android:text="추가하기" />
</LinearLayout>
animal.java (데이터베이스로 값을 저장하기 위해 사용)
package com.example.firebase;
//테이블이라고 생각하고, 테이블에 들어갈 속성값을 넣기
//파이어베이스는 RDBMS와 다르기 때문에 테이블이라는 개념이 없음. 원래는 키값이라고 부름
public class animal {
String name; //동물 이름
String kind; //동물 종류
public animal(){} // 생성자 메서드
//getter, setter 설정
public String getname() {
return name;
}
public void setname(String name) {
this.name = name;
}
public String getkind() {
return kind;
}
public void setkind(String kind) {
this.kind = kind;
}
//값을 추가할때 쓰는 함수, MainActivity에서 addanimal함수에서 사용할 것임.
public animal(String name, String kind){
this.name = name;
this.kind = kind;
}
}
MainActivity.java
package com.example.firebase;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import java.util.Calendar;
import java.util.Date;
public class MainActivity extends AppCompatActivity {
// 파이어베이스 데이터베이스 연동
private FirebaseDatabase database = FirebaseDatabase.getInstance();
//DatabaseReference는 데이터베이스의 특정 위치로 연결하는 거라고 생각하면 된다.
//현재 연결은 데이터베이스에만 딱 연결해놓고
//키값(테이블 또는 속성)의 위치 까지는 들어가지는 않은 모습이다.
private DatabaseReference databaseReference = database.getReference();
Button btn;
EditText edit1, edit2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = findViewById(R.id.btn); //버튼 아이디 연결
edit1 = findViewById(R.id.edit1); //동물 이름 적는 곳
edit2 = findViewById(R.id.edit2); //동물 종류 적는 곳
//버튼 누르면 값을 저장
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//에딧 텍스트 값을 문자열로 바꾸어 함수에 넣어줍니다.
addanimal(edit1.getText().toString(),edit2.getText().toString());
}
});
}
//값을 파이어베이스 Realtime database로 넘기는 함수
public void addanimal(String name, String kind) {
//여기에서 직접 변수를 만들어서 값을 직접 넣는것도 가능합니다.
// ex) 갓 태어난 동물만 입력해서 int age=1; 등을 넣는 경우
//animal.java에서 선언했던 함수.
animal animal = new animal(name,kind);
//child는 해당 키 위치로 이동하는 함수입니다.
//키가 없는데 "zoo"와 name같이 값을 지정한 경우 자동으로 생성합니다.
databaseReference.child("zoo").child(name).setValue(animal);
}
}
- 값 저장 시 상위 키값 랜덤으로 지정하는 법 -
더보기
MainActivity.java 에서 addanimal함수 변형
//값을 파이어베이스 Realtime database로 넘기는 함수
public void addanimal(String name, String kind) {
//여기에서 직접 변수를 만들어서 값을 직접 넣는것도 가능합니다.
// ex) 갓 태어난 동물만 입력해서 int age=1; 등을 넣는 경우
//animal.java에서 선언했던 함수.
animal animal = new animal(name,kind);
//push()는 값을 넣을때 상위 키값을 랜덤으로 설정해 주는 함수입니다.
//채팅기능을 만들때 사용하면 좋습니다.
databaseReference.child("zoo").push().setValue(animal);
}
값을 넣을때 상위 키값을 랜덤으로 지정하도록 push()로 설정한 모습입니다.
키값을 랜덤으로 넣고싶거나, 채팅과 같은 계속해서 추가되는 값에 사용하면 좋습니다.
-변형 코드 결과 모습-
수고하셨습니다.
728x90
반응형
'Mobile > Firebase' 카테고리의 다른 글
파이어베이스 데이터 중복 검사 하기 (초간단) (0) | 2021.05.17 |
---|---|
3. 안드로이드 파이어베이스 데이터 읽기 (1) | 2021.04.28 |
1. 파이어베이스 생성 및 안드로이드 연동 (10) | 2021.04.06 |