728x90
반응형

파이어베이스 실시간 데이터베이스에 값을 저장하는 예제입니다.

코드 설명은 주석으로 써놨습니다!

 

 

파이어베이스 연동은 아래 링크에서 확인하시길 바랍니다.

https://fjdkslvn.tistory.com/2

 

1. 파이어베이스 생성 및 안드로이드 연동

안녕하세요. 오늘은 안드로이드에 파이어베이스를 연동하는 작업을 해보려고 합니다. 1. 구글 로그인을 하고 프로젝트 만들기 클릭 2. 프로젝트 명을 작성하고 계속 누르고 3. 애널리틱스 구성을

fjdkslvn.tistory.com

 

 

 

 

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
반응형

+ Recent posts