[Unity] 파이어베이스 데이터베이스 연동 - 데이터베이스에 생성 정보 저장

김민석·2021년 8월 15일
1

Unity

목록 보기
3/3

1. 파이어베이스 sdk에서 FirebaseDatabase를 import한다.

2. 파이어베이스에서 realtime database 설정 후 json 파일 업데이트


데이터베이스를 생성한다.



규칙들을 true로 세팅해 준다.

json 파일을 업데이트한다.

3. 코드 업데이트

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Firebase.Auth;
using UnityEngine.UI;
// 요소 추가
using Firebase;
using Firebase.Database;
using Firebase.Unity;
using UnityEngine.SceneManagement;


public class AuthManager : MonoBehaviour
{

    [SerializeField] InputField emailField;
    [SerializeField] InputField passField;

    // 인증을 관리할 객체
    Firebase.Auth.FirebaseAuth auth;

    DatabaseReference reference; // 데이터를 쓰기 위한 reference 변수


    void Awake()
    {
        // 객체 초기화
        auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
        reference = FirebaseDatabase.DefaultInstance.RootReference;
    }
    public void login()
    {
        // 제공되는 함수 : 이메일과 비밀번호로 로그인 시켜 줌
        auth.SignInWithEmailAndPasswordAsync(emailField.text, passField.text).ContinueWith(
            task => {
                if (task.IsCompleted && !task.IsFaulted && !task.IsCanceled)
                {
                    Debug.Log(emailField.text + " 로 로그인 하셨습니다.");
                }
                else
                {
                    Debug.Log("로그인에 실패하셨습니다.");
                }
            }
        );
    }
    public void register()
    {
        // 제공되는 함수 : 이메일과 비밀번호로 회원가입 시켜 줌
        auth.CreateUserWithEmailAndPasswordAsync(emailField.text, passField.text).ContinueWith(
            task => {
                if (!task.IsCanceled && !task.IsFaulted)
                {
                    Debug.Log(emailField.text + "로 회원가입\n");

                    //회원가입한 사용자의 고유 번호를 통한 사용자 기본 생성
                    Firebase.Auth.FirebaseUser newUser = task.Result;
                    writeNewUser(newUser.UserId);
                }
                else
                    Debug.Log("회원가입 실패\n");
            });
    }

    public class User // 사용자 클래스 생성
    {
        public string user_avt;
        public Vector3 position;
        public User()
        {
            this.user_avt = "default";
            this.position = new Vector3(0, 0, 0);
        }
    }

    void writeNewUser(string userid) // 가입한 회원 고유 번호에 대한 사용자 기본값 설정
    {
        User user = new User();
        string json = JsonUtility.ToJson(user); // 생성한 사용자에 대한 정보 json 형식으로 저장
        reference.Child(userid).SetRawJsonValueAsync(json); // 데이터베이스에 json 파일 업로드
    }
}

4.실행



회원가입한 사용자의 고유 번호에 해당하는 정보가 생성된 것을 확인할 수 있다.

참고 : https://simpleneed.tistory.com/76

profile
김민석의 학습 정리 블로그

3개의 댓글

comment-user-thumbnail
2022년 8월 22일

안녕하세요! 도움 많이 되었습니다.
혹시
public class User // 사용자 클래스 생성
{
public string user_avt;
public Vector3 position;
public User()
{
this.user_avt = "default";
this.position = new Vector3(0, 0, 0);
}
}

이부분에서 벡터랑 avt는 유저 아바타의 움직임을 조작하기 위해 넣은 코드인가요?

1개의 답글