Unity์™€ Firebase์˜ ์—ฐ๋™

2024. 2. 4. 12:20ยท๐Ÿ“‚ Additional Study/๐Ÿ“„ Firebase

 

 
 
 
 

๐Ÿ“Œ Unity ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

1. ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ›„ [ FIle ] - [ Build Settings... ] ์—์„œ Platform์„ Android ์„ ํƒ ํ›„ Switch Platform

 
2. [ FIle ] - [ Build Settings... ] - [ Player Settings... ] - [ Other Settings ] - [ Identification ] ์˜ Package Name ์„ค์ •

    (Package Name์˜ ํ˜•์‹์€ "com.CompanyName.ProductName" ์ด๋ฉฐ, ์ˆซ์ž๋กœ ์‹œ์ž‘ X, ์•ŒํŒŒ๋ฒณ๊ณผ "_"๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.)

 

๐Ÿ“Œ Firebase ํ”„๋กœ์ ํŠธ ์ถ”๊ฐ€

1. ์šฐ์„  Firebase ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•œ๋‹ค. (https://firebase.google.com/?hl=ko)

 

Firebase | Google’s Mobile and Web App Development Platform

๊ฐœ๋ฐœ์ž๊ฐ€ ์‚ฌ์šฉ์ž๊ฐ€ ์ข‹์•„ํ•  ๋งŒํ•œ ์•ฑ๊ณผ ๊ฒŒ์ž„์„ ๋นŒ๋“œํ•˜๋„๋ก ์ง€์›ํ•˜๋Š” Google์˜ ๋ชจ๋ฐ”์ผ ๋ฐ ์›น ์•ฑ ๊ฐœ๋ฐœ ํ”Œ๋žซํผ์ธ Firebase์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์„ธ์š”.

firebase.google.com

2. [ ์‹œ์ž‘ํ•˜๊ธฐ ] - [ ํ”„๋กœ์ ํŠธ ์ถ”๊ฐ€ ]

 
3. [ ํ”„๋กœ์ ํŠธ ์ด๋ฆ„ ] ์ž…๋ ฅ

 
4. [ ์ด ํ”„๋กœ์ ํŠธ์—์„œ Google ์• ๋„๋ฆฌํ‹ฑ์Šค ์‚ฌ์šฉ ์„ค์ • ] ์ฒดํฌ - [ ๊ณ„์† ]

 
5. ๊ณ„์ •์ด ์—†์„ ๊ฒฝ์šฐ Default Account for Firebase๋ฅผ ์„ ํƒํ•œ๋‹ค. (์ƒˆ ๊ณ„์ •์„ ๋งŒ๋“œ๋Š” ๊ฒƒ ์ถ”์ฒœ)

 
6. FIrebase์— Unity ์•ฑ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

 
7. Unity ํ”„๋กœ์ ํŠธ์˜ Package Name์œผ๋กœ ์•ฑ์„ ๋“ฑ๋กํ•œ๋‹ค.

 
8. ๊ตฌ์„ฑ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ ํ›„ Unity ํ”„๋กœ์ ํŠธ์˜ Assets ํด๋”์— ๋„ฃ๋Š”๋‹ค.

 
9. google-services.json ํŒŒ์ผ์˜ "project_info" ๋ถ€๋ถ„์— "firebase_url" : "Firebase์˜ url"์„ ์ถ”๊ฐ€๋กœ ์ž…๋ ฅํ•ด์ค€๋‹ค.

 
10. Firebase์˜ SDK๋ฅผ ๋‹ค์šด๋กœ๋“œํ•œ ๋’ค ํŽธ๋ฆฌํ•œ ์œ„์น˜์— ์••์ถ•์„ ํ‘ผ๋‹ค. 

 
11. Unity Project ์ฐฝ์˜ [ Assets ] - [ ์˜ค๋ฅธ์ชฝ ๋งˆ์šฐ์Šค ] - [ import Package ] - [ Custom Package... ] 

 
12 . ์••์ถ• ํ•ด์ œํ•œ ํด๋”์—์„œ FirebaseDatabase.unitypackage ๋ฅผ ๊ฐ€์ ธ์˜จ๋’ค import ํ•œ๋‹ค.

 
13. Unity๋กœ ๋Œ์•„์™€์„œ [ Enable ] ํด๋ฆญ (์˜ค๋ฅ˜๋Š” IOS ์•ฑ ๋“ฑ๋ก์„ ์•ˆ ํ•ด์„œ ๋ฐœ์ƒํ•˜๋Š”๋ฐ ์ „ํ˜€ ์ƒ๊ด€ X)

 

 

๐Ÿ“Œ ๋ฐ์ดํ„ฐ ์ €์žฅ

1. ์šฐ์„  [ ๋นŒ๋“œ ] - [ Realtime Database ] - [ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งŒ๋“ค๊ธฐ ] ๋ฅผ ํ†ตํ•ด Realtime Database๋ฅผ ๋งŒ๋“ ๋‹ค.

 
2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์œ„์น˜๋ฅผ ์„ ํƒํ•œ๋‹ค.

 
3. ํ…Œ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณด์•ˆ ๊ทœ์น™์„ ์ž‘์„ฑํ•œ ๋’ค [ ์‚ฌ์šฉ ์„ค์ • ] ํด๋ฆญ

 
4. ๋ฐ์ดํ„ฐ ์ €์žฅ Test๋ฅผ ์œ„ํ•ด Unity๋กœ ๋Œ์•„์™€ [ Hierarcy ] - [ ์˜ค๋ฅธ์ชฝ ๋งˆ์šฐ์Šค ] - [ Create Empty ] ๋ฅผ ํ†ตํ•ด ๋นˆ ์˜ค๋ธŒ์ ํŠธ ์ƒ์„ฑ ํ›„
    ๋‹ค์Œ๊ณผ ๊ฐ™์€ Script๋ฅผ Component๋กœ ์ถ”๊ฐ€ํ•œ๋‹ค.

 

๋ฐ์ดํ„ฐ ์ €์žฅ Test๋ฅผ ์œ„ํ•œ FirebaseTest Script ์ƒ์„ฑ
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Firebase;
using Firebase.Database;
public class FirebaseTest : MonoBehaviour
{
    DatabaseReference dbReference;

    void Start()
    {
        dbReference = FirebaseDatabase.DefaultInstance.RootReference;

        dbReference.Child("users").Child("username").SetValueAsync("YS");
    }
}

 
5. Realtime Database์—์„œ ๋ฐ์ดํ„ฐ ์ €์žฅ์ด ์ž˜ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

 
+ ๋˜ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐฉ๋ฒ• (https://firebase.google.com/docs/database/unity/save-data?hl=ko)

ํ˜•์‹์ด ์ง€์ •๋œ C# ๊ฐ์ฒด๋ฅผ ๋ฐ์ดํ„ฐ๋กœ ์ €์žฅํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Firebase;
using Firebase.Database;
public class Test : MonoBehaviour
{
    DatabaseReference dbReference;

    void Start()
    {
        dbReference = FirebaseDatabase.DefaultInstance.RootReference;

        AddNewUser("1", "YS", "1234@naver.com");
    }

    void AddNewUser(string userId, string name, string email)
    {
        User user = new User(name, email);
        string json = JsonUtility.ToJson(user); // ํ˜•์‹์ด ์ง€์ •๋œ C# ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉ์‹œ ๊ฐ์ฒด๋ฅผ ์›์‹œ JSON์œผ๋กœ ๋ณ€ํ™˜

        dbReference.Child("users").Child(userId).SetRawJsonValueAsync(json); // ์ง€์ •๋œ ์œ„์น˜์—์„œ ํ•˜์œ„ ๋…ธ๋“œ๋ฅผ ํฌํ•จํ•˜์—ฌ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฎ์–ด์“ด๋‹ค.
        dbReference.Child("users").Child(userId).Child("username").SetValueAsync("JY"); // ์ „์ฒด ๊ฐ์ฒด๋ฅผ ๋‹ค์‹œ ์“ฐ์ง€ ์•Š๊ณ  ํ•˜์œ„ ํ•ญ๋ชฉ์„ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ๋ฐฉ๋ฒ•
    }
}โ€‹

 
 
 

๐Ÿ“Œ ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

1. ํ˜„์žฌ Realtime Database์— ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋“ค์ด ์žˆ๋‹ค.

 
2. ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•ด Script๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜์ •ํ•œ๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•œ FirebaseTest Script ์ˆ˜์ •
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Firebase;
using Firebase.Database;
public class Test : MonoBehaviour
{
    DatabaseReference dbReference;

    void Start()
    {
        dbReference = FirebaseDatabase.DefaultInstance.RootReference;

        LoadUserInfo();
    }

    void LoadUserInfo()
    {
        dbReference.Child("users").GetValueAsync().ContinueWith(task =>
        {
            if (task.IsCanceled)
                Debug.Log("๋กœ๋“œ ์ทจ์†Œ");
            else if (task.IsFaulted)
                Debug.Log("๋กœ๋“œ ์‹คํŒจ");
            else
            {
                var dataSnapshot = task.Result;

                foreach (var data in dataSnapshot.Children)
                    foreach (var child in data.Children)
                        Debug.Log(data.Key + " : " + child.Key + " : " + child.Value);
            }
        });
    }
}โ€‹

 
3. Console ์ฐฝ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ •์ƒ์ ์œผ๋กœ ๋ถˆ๋Ÿฌ์™”๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

 

 

๐Ÿ“Œ ๋ฉ”์„œ๋“œ ์ฐธ๊ณ 

 
 

'๐Ÿ“‚ Additional Study > ๐Ÿ“„ Firebase' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Firebase์˜ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ  (0) 2024.03.01
'๐Ÿ“‚ Additional Study/๐Ÿ“„ Firebase' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • Firebase์˜ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ
YeonSu02
YeonSu02
Email : rkddustn2519@naver.com
  • YeonSu02
    IsLiife2
    YeonSu02
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
      • ๐Ÿ“‚ Computer Science
      • ๐Ÿ“‚ Unity Engine Study
        • ๐Ÿ“„ Unity ์ธํ”„๋Ÿฐ ๊ฐ•์˜
        • ๐Ÿ“„ Unity ์œ ํŠœ๋ธŒ ๊ฐ•์˜
        • ๐Ÿ“„ Unity ์ฐธ๊ณ 
      • ๐Ÿ“‚ Game Designer Study
        • ๐Ÿ“„ ๊ธฐํš ์ธํ”„๋Ÿฐ ๊ฐ•์˜
      • ๐Ÿ“‚ Quality Assurance Study N
        • ๐Ÿ”ฅ ์—˜๋ฆฌ์Šค SW QAํŠธ๋ž™ N
        • ๐Ÿ“„ QA ๊ณต๋ถ€
        • ๐Ÿ“š QA ์ฑ… ๋ฆฌ๋ทฐ
      • ๐Ÿ“‚ Program Language Study
        • ๐Ÿ“„ C# ๊ณต๋ถ€
        • ๐Ÿ“„ ํŒŒ์ด์ฌ ๊ณต๋ถ€
        • ๐Ÿ“„ Java ๊ณต๋ถ€
        • ๐Ÿ“„ JavaScript ๊ณต๋ถ€
      • ๐Ÿ“‚ Additional Study
        • ๐Ÿ“„ Git
        • ๐Ÿ“„ Firebase
        • ๐Ÿ“„ License
      • ๐Ÿ’ป Game Development
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
  • ๋งํฌ

    • GitHub
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์ •์ฒ˜๊ธฐ ์‹ค๊ธฐ
    ์ปดํ™œ
    ์ •์ฒ˜๊ธฐ ํ•„๊ธฐ
    ์ปดํ™œ2๊ธ‰
    qa์ž๊ฒฉ์ฆ
    ๊ตญ์ œ์ž๊ฒฉ์ฆ
    ์ž๊ฒฉ์ฆ
    ํ…Œ์ŠคํŒ…์ž๊ฒฉ์ฆ
    qa ์ฑ…
    QA
    ISTQB
    istqb-ctfl
    BTS
    ์—‘์…€
    ์ปดํ“จํ„ฐํ™œ์šฉ๋Šฅ๋ ฅ2๊ธ‰
    ์ •์ฒ˜๊ธฐ
    ์ปดํ“จํ„ฐํ™œ์šฉ๋Šฅ๋ ฅ1๊ธ‰
    ์ •์ฒ˜๊ธฐ ๋…ํ•™
    ์ปดํ“จํ„ฐํ™œ์šฉ๋Šฅ๋ ฅ
    qa ์ฑ… ๋ฆฌ๋ทฐ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
YeonSu02
Unity์™€ Firebase์˜ ์—ฐ๋™
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”