728x90
반응형

저급언어

- 기계 중심의 언어로 배우기 어렵다

- 기계가 이해할 수 있도록 만들어진 언어이다

- 호환성이 떨어진다

- 기계어, 어셈블리어 등의 언어는 저급 언어이다

고급언어

- 사람 중심의 언어로, 배우기 쉽다

- 개발자가 원시 프로그램을 작성할 때 쉽게 이해할 수 있도록 작성된 언어이다

- 호환성이 좋다

- C,C++,Java,COBAL,FORTRAN 등이 해당된다

- 기계어로 번역이 필요하다

기계어

- 2진수 0과 1만 사용하여 명령어와 데이터를 나타낸다

- 언어 번역 과정이 필요없다

- 호환성이 없다

- 유지보수가 어렵다

원시 프로그램 : 기계어로 번역되기 전 프로그래머에 의해서 작성된 프로그램 파일

목적 프로그램 : 기계어로 번역된 프로그램 파일 (0과1로 구성)

 

 

 

 

언어 번역 프로그램

 

어셈블러 : 저급언어를 기계어로 변환시킴 (어셈블리어)

컴파일러 : 고급언어를 기계어로 변환시킴 (C, C++, PASCAL, FORTRAN)

*기계어 = 목적 프로그램*

- 빠르다, 번역시 장소를 확보

인터프리터 : 원시 프로그램을 입력으로 받아 기계어로 변환하지 않고 직접 실행

(BASIC, PROLOG, LISP, PYTHON)

- 반복문 사용시 컴파일러에 비해 불리함, 실행시 장소를 확보

- 대화식 프로그램일 경우 컴파일러에 비해 유리함

=> 컴파일러와 인터프리터의 가장 큰 차이점은 목적 프로그램의 생성 유무

프리프로세서 : 고급 언어를 또 다른 고급 언어로 번역하는 고급 언어 번역기

크로스 컴파일러 : 컴퓨터 기종이 다른 경우에 사용되는 컴파일러

매크로 프로세서 : 어셈블리어를 사용하기 쉽도록 명령어들을 매크로(문자)로 치환하여 확장시킴

 

 

 

프로그램 수행 순서

 

원시 프로그램 -> 컴파일러 -> 목적 프로그램 -> 링커 -> 로더 -> 실행

링커 : 여러개의 목적 파일을 하나의 프로그램으로 연결한다

로더 : 프로그램이 실행될 수 있는 환경을 설정하고 프로그램을 주기억 장치에 적재한다

[절대로더 : 할당(프로그래머) -> 연결(프로그래머) -> 재배치(어셈블러) -> 적재(로더)]

실행 : CPU에 의해서 프로그램이 실행된다

컴파일러 단계

어휘분석 -> 구문분석 -> 의미분석 -> 중간 코드 생성 -> 코드 최적화 -> 코드 생성

 

 

 

 

 

 

 

 

자료 객체

 

예약어 : 용도가 정해져있는 단어 (for, while, if 등)

변수 : 기억 장치의 한 장소를 추상화한 것으로 프로그램이 동작하는 동안 값이 수시로 변할 수 있음

+ 어떤 값을 주기억 장치에 기억하기 위해 사용하는 공간

상수 : 수명 시간 동안 고정된 하나의 값과 이름을 가진 자료로써, 프로그램이 동작하는 동안 값이 절대로 바뀌지 않는 것을 의미함

식별자 : 프로그램의 구성 요소를 구별하기 위한 기준, 변수명이 식별자에 속함

선언 : 변수 이름을 나열하고 속성을 부여하는 것 (상수 값에 의해 속성이 부여되기도 함)

할당 : 변수에 메모리 공간을 바인딩하는 작업

배열

- 같은 크기와 타입의 자료를 연속적인 기억 장치에 저장하여 처리하는 구조

- 고정 크기의 메모리 공간을 사용

- 연속적인 기억장치를 사용 (논리적, 물리적 순서 동일)

- 중간에 삽입, 삭제가 어려움

- C언어의 선언 : int A[2][5];

- Java의 선언 : int[][]A = new int[2][5];

포인터

- 변수명에는 실제 기억 장소의 위치인 절대 번지가 존재하는데, 이를 주소 상수라고 하거나 포인터 상수라고 함

- 변수 a의 포인터 상수는 &a로 사용하면 된다

- 커다란 배열에 원소를 효율적으로 저장하고자 할 때 이용함

바인딩 : 변수의 명칭, 메모리 주소, 데이터형 또는 실제 값을 연결하는 것을 의미함 (변수들이 갖는 속성 결정)

=> 정적 바인딩은 프로그램 실행 시간 전, 동적 바인딩은 프로그램 실행 시작 후의 속성을 연결하는 것

728x90
반응형
728x90
반응형

 

 

카톡이나 인스타그램 같은 앱을 보시면 하단에 탭 버튼이 있어, 각 탭을 눌러서 화면을 이동할 수 있도록 되어있습니다.

 

만약 옆으로 밀어서 화면이 넘어가는 탭을 만들고 싶다면 '뷰클리퍼'를 사용할 수 있습니다.

 

 

 

 

탭 호스트는 탭 버튼에 맞는 화면을 갈아끼울 수 있는 장소라고 생각하시면 됩니다.

 

각 버튼에 맞는 화면은 1개씩만 지정이 가능하고 사진을 연결할 수도 있고,

xml을 따로 연결할 수도 있어서 각 탭 버튼에 맞는 화면 구현이 가능합니다.

 

각 탭버튼마다 xml을 연결한다면, 필요한 xml의 개수는 4개 입니다.

 

탭 호스트 xml 1개, 각 화면에 맞는 xml 3개!

 

 

 

 

 

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">

<TabHost
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@android:id/tabhost">

<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">

<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@android:id/tabcontent">

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tab_study"
android:orientation="vertical" ></LinearLayout>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/tab_time"></LinearLayout>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/tab_group"></LinearLayout>

</FrameLayout>



<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"></TabWidget>


</LinearLayout>


</TabHost>

</LinearLayout>

프레임 레이아웃 안쪽 리니어 레이아웃이 3개가 있습니다.

이 리니어 레이아웃의 개수가 버튼의 개수라고 생각하시면 됩니다.

 

만약 탭 버튼들이 하단이 아니라 상단에 위치하는것을 원하신다면 탭위젯을 프레임레이아웃 바로 위로 올려주시면 됩니다.

 

 

 

 

 

 

 

MainActivity.java

package com.example.together;


import androidx.appcompat.app.AppCompatActivity;
import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TabHost;



@SuppressWarnings("deprecation") //이거 있어야 합니다.

public class MainActivity extends TabActivity {



@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


TabHost tabHost = getTabHost(); //탭 호스트 객체 생성

// 탭스팩 선언하고, 탭의 내부 명칭, 탭에 출력될 글 작성
TabHost.TabSpec spec;
Intent intent; //객체




//탭에서 액티비티를 사용할 수 있도록 인텐트 생성
intent = new Intent().setClass(this, Study.class);
spec = tabHost.newTabSpec("Study"); // 객체를 생성
spec.setIndicator("공부하기"); //탭의 이름 설정
spec.setContent(intent);
tabHost.addTab(spec);



//탭에서 액티비티를 사용할 수 있도록 인텐트 생성
intent = new Intent().setClass(this, Time.class);
spec = tabHost.newTabSpec("Time"); // 객체를 생성
spec.setIndicator("통계"); //탭의 이름 설정
spec.setContent(intent);
tabHost.addTab(spec);



//탭에서 액티비티를 사용할 수 있도록 인텐트 생성
intent = new Intent().setClass(this, Together_home.class);
spec = tabHost.newTabSpec("Together_home"); // 객체를 생성
spec.setIndicator("그룹"); //탭의 이름 설정
spec.setContent(intent);
tabHost.addTab(spec);



tabHost.setCurrentTab(0); //먼저 열릴 탭을 선택! (2)로 해두면 그룹이 시작 화면!


}

}

각 탭에 맞는 xml이 연결될 수 있도록 자바코드를 작성해줍니다. xml에 맞는 java파일을 꼭 만드셔야해요.

 

intent = new Intent().setClass(this, Together_home.class); 이 부분이 각 탭에 맞는 화면이 나올 수 있도록 인텐트 하는 부분입니다.

 

 

 

 

Together_home.java

package com.example.together;

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;



public class Together_home extends AppCompatActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.together_home); //xml연결



}

}

그룹 버튼을 눌렀을떄 연결되는 자바파일 입니다. xml과 연결되어 있어야 합니다.

 

새로운 자바파일을 추가했으면, Manifest에 추가하는거 잊지 마시길 바랍니다.

 

 

 

 

 

 

 

결과 화면

 

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

일단 로그인을 성공하시면 Authentication -> user에 로그인 한 구글 아이디가 떠야합니다.

(Authentication의 활성화가 안되신분들은 시작하기 버튼 눌러주시면 됩니다)

 

 

 

 


뜨지 않는다면 구글 로그인 연동에 관련된 기본적인 설정 부분 부터 확인해봅시다.

 

 

 

1. 로그인 필수요소인 SHA1 설정 확인

 

 

본인은 파이어베이스 연동으로 구글로그인이 되는데, 팀원들은 로그인이 안되는 경우에 도움이 될 수 있습니다.

 

연동한 앱을 누르고 톱니바퀴(설정)을 들어갑니다.

 

 

 

 

 

지원 이메일을 적어줍니다. 본인 이메일 아무거나 적어주세요.

 

 

 

 

밑으로 내리시면 'SDK 설정 및 구성'이 있는데 디지털 지문 추가를 눌러서 SHA1을 추가해줍니다.

=> 이 디지털 지문은 각 컴퓨터 환경마다 다른 것 같습니다. SHA1을 확인하고 넣은 컴퓨터만 로그인이 됩니다.

프로젝트를 진행할 경우 팀원들 모두 SHA1를 각자 확인하여 넣어야 로그인 할 수 있습니다.

네명이 프로젝트를 진행한다면 SHA1이 4개가 들어가야겠죠?

 

 

[SHA1 확인하는 방법] 링크를 따라 들어가시고 5번을 확인하시길 바랍니다.

https://fjdkslvn.tistory.com/2

 

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

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

fjdkslvn.tistory.com

 

 

 

 

 

2. 파이어베이스 Authentication -> Sign-in method 에서 이메일/비빌번호와 Google 부분을 활성화

1번에서 말씀드린 '지원이메일'과 'SHA1'을 안넣으면 구글 활성화를 못합니다.

 

 

 

 

 

 

3.  AndroidManifest에 인터넷 권한을 허용하는 코드가 들어있는지 확인

 

 

 

 

 

 

4. 로그인 오픈소스를 사용하는데 GoogleSignIn 또는 Google들어간 부분들이 다 빨간색으로 오류가 나는 경우

 

onActivityResult 함수 내부의 GoogleSignin에도 오류가 있다면, 이걸 눌렀을 때 나오는 해결방법인 add ~~를 합니다.

 

그러면 위쪽에 있는 Google관련 오류가 싹 다 해결됩니다.

 

 

 

 

 

5. requestIdToken에서 default_web_client_id에 오류가 난다면

 

 

 

파일 형식을 Project로 변환합니다.

 

 

app -> build -> generated -> res -> google-services -> debug -> values -> values.xml로 들어갑니다.

(build는 앱을 한번 실행해야 생깁니다. build가 없다고 당황하지마세요.)

 

default_web_client_id 오른쪽에 아주 긴 문장이 있을텐데, 그걸 복사하세요.

<string name="default_web_client_id" translatable="false">여기에 있는것을 복사</string>

 

 

 

그리고 자바 파일로 돌아와서 큰따옴표 안에 넣어주시면 됩니다.

 

 


여태까지 제가 겪었던 로그인 오류 해결 방법을 소개해드렸습니다.

 

로그인 후 다음 화면으로 넘어가는 작업이 잘 안되시는 경우.. intent를 어디에 넣었는지 잘 확인하시길 바랍니다.

 

728x90
반응형
728x90
반응형

누군가 올려둔 안드로이드 파일을 다운로드 받았을 때, 오류가 나는 경우가 있습니다.

 

(본인이 전에 잘 쓰던 파일도 오류가 날 수 있습니다)

 

 

분명 파일 주인은 파일 실행에 아무 문제가 없다고 하지만....

 

본인만 빨간줄이 생겨있거나 파일 형식에 안드로이드가 없는 경우 등에 도움이 될 수 있습니다.

 

 

 

-예상 원인-

  • 컴퓨터가 느려서 로딩이 덜 됐을 경우 (기다리면 해결 됨)
  • 캐시 오류
  • Sync가 정상적으로 처리되지 않음
  • 안드로이드 스튜디오 버전이 최신이 아님

 

 

 

 

 

 

 

-해결 방안-

일단 로딩이 덜 되어서 이 글까지 찾아보러 오신거면 컴퓨터를 바꾸시는게 좋을지도 모릅니다.

자신의 참을성의 한계까지 기다려봅시다..

 

 

로딩 문제가 아닌것같다면 이제 하나씩 따라해봅시다.

 

1. Invalidate Caches / Restart

File -> Invalidate Caches / Restart 를 누르면

 

이 화면이 나올텐데요. 파란 버튼을 눌러줍니다.

 

 

 

 

 

 

 

2. Sync Project with Gradle Files

 

해결이 안되셨나보군요. 이번에는 Sync를 해줍시다.

(저는 그냥 문제있으면 Sync부터 눌러보긴 합니다. 제일 만만하거든요)

 

오른쪽 상단을 보시면 코끼리가 있을겁니다. 이걸 눌러주세요.

 

 

File -> Sync Project with Gradle Files를 눌러주시는 것도 같은 방법입니다.

 

 

 

 

 

3. 안드로이드 스튜디오 업데이트 하기

 

아직도 해결이 안되셨으면.. 저와 같은 상황이였을지도 모르겠네요.

 

업데이트 합시다.

 

 

Tools -> SDK Manager 로 들어가줍니다.

 

 

System Settings -> Updates를 눌러주세요. (사진상 현재 위치의 바로 위에있는 부분입니다)

 

 

Stable Channel로 바꿔주시고 하단의 OK버튼을 눌러주시면 됩니다.

 

(저는 처음에 Beta Channel로 업데이트 했다가 슬픔을 경험해 본 적이 있으니.. 유의하시기 바랍니다)

 

 

 

 


이래도 해결이 안되신 분들은.... 다른 방법을..!

728x90
반응형
728x90
반응형

안녕하세요.  오늘은 안드로이드에 파이어베이스를 연동하는 작업을 해보려고 합니다.

 

 

 

1. 구글 로그인을 하고 프로젝트 만들기 클릭

 

 

 

 

 

 

 

 

2. 프로젝트 명을 작성하고 계속 누르고

 

 

 

 

 

 

 

3. 애널리틱스 구성을 사진과 같이 선택해주고 프로젝트 만들기

 

 

 

 

 

 

4. 프로젝트가 만들어지면 앱을 추가하여 시작하기에서 원하는 걸 누르면 된다, ex) android

 

 

 

 

 

 

5. 앱 등록을 위해 패키지 명을 입력해줍니다. (나머지도 입력해주면 좋습니다.)

 

 

 

 

* 패키지명 보는 법프로젝트 보면 자바 맨 위에! *

 

 

 

 

 

 

* 디버그 서명 인증서 확인하기 *

 

코끼리 누르고 -> 프로젝트 파일-> Tasks -> android -> signingReport를 누르면!

 

 

 

 

밑에 이렇게 뜹니다. SHA1, SHA-256을 인증서로 쓰는것같습니다.

여기서는 SHA1복사해주세요.

 

 

 

 

 

 

 

 

6. 다음은 json 파일을 프로젝트 파일에 직접 넣습니다.

 

 

 

 

파일을 편하게 보기위해 왼쪽 위에서 상자를 열고 Project Files로 넘어갑니다.

 

 

 

json파일을 드래그하여 app위에 올려주면 app의 하단으로 들어갑니다.

 

 

 

 

7. 다음은 Firebase SDK를 추가해주는 과정입니다. 그냥 보면서 직접 추가하시면 됩니다.

 

 

 

 

코끼리 2개에 각각 써주시고 Sync now 누르시면 됩니다.

 

*build.gradle(Module)쪽에서 apply plugin 넣을 때,

plug{ }가 있어도 이 안에 넣지말고 밖에다가 넣어줘야지 동작합니다.*

 

 

 

 

 

 

 

 

8. 여기까지 잘 따라오셨으면 일단 정상적으로 파이어베이스가 연동되어있을 겁니다.

 

 

 

 

 

 

 

9. Realtime Database 규칙 설정하기

 

Realtime Database를 눌러서 활성화 시키고, 규칙에 들어와서 아무거나 누른 후 코드를 이렇게 수정해줍니다.

 

이렇게 수정해야 개발할때 편하게 접근할 수 있습니다. 배포할때는 유의해야겠습니다.

 

 

 

10. 안드로이드와 잘 연동되었는지 확인해봅시다.

 

Tools -> Firebase를 들어갑니다.

 

 

 

 

그러면 우측에 파이어베이스가 뜰것이고.. 한번 Realtime Database를 눌러 파란글씨로 들어가봅시다.

(Realtime Database가 꼭 아니여도 괜찮습니다.)

 

 

 

 

아마 여러분은 잘 따라오셨다면 1번만 초록글씨가 나와있을겁니다.

(1번이 활성화가 되어있지 않다면, 방금 한 작업중 오류가 있었던 것 입니다. json파일의 위치가 app하단으로 잘 들어갔는지 확인하시고, SDK 코드 입력한것에 오타가 없는지 확인해보시기 바랍니다.)

 

2번까지 활성화를 시켜야하는데 'Add the Realtime Database SDK to your app'을 눌러줍니다.

 

 

'Accept Changes'까지 눌러주시면 끝납니다!

 

 

 

 

 

11. 파이어베이스 실시간 데이터베이스를 사용하기 위해 코드 추가

 

AndroidManifest.xml에 인터넷 권한을 허용하는 코드를 작성해줍니다.

<uses-permission android:name="android.permission.INTERNET"/>

 

 

 

수고하셨습니다.

728x90
반응형

+ Recent posts