Anda dapat mengizinkan pengguna untuk melakukan autentikasi dengan Firebase menggunakan akun GitHub mereka. Hal tersebut dapat dilakukan dengan mengintegrasikan autentikasi GitHub ke dalam aplikasi Anda.
Sebelum memulai
Sebelum dapat menggunakan Firebase Authentication, Anda perlu:
Mendaftarkan project Unity Anda dan mengonfigurasikannya agar dapat menggunakan Firebase.
Jika project Unity Anda telah menggunakan Firebase, berarti project tersebut telah terdaftar dan dikonfigurasi untuk Firebase.
Jika belum memiliki project Unity, Anda dapat mendownload aplikasi contoh.
Tambahkan Firebase Unity SDK (khususnya,
FirebaseAuth.unitypackage
) ke project Unity Anda.
Perlu diperhatikan bahwa penambahan Firebase ke project Unity Anda memerlukan tindakan baik di Firebase console maupun di project Unity yang terbuka (misalnya, Anda mendownload file konfigurasi Firebase dari konsol, lalu memindahkannya ke project Unity).
Mengakses class Firebase.Auth
Class FirebaseAuth
adalah gateway untuk semua panggilan API.
Class ini dapat diakses melalui FirebaseAuth.DefaultInstance.
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
Melakukan Autentikasi dengan Firebase
- Ikuti petunjuk untuk Android dan iOS+ untuk mendapatkan token bagi pengguna yang login dengan GitHub.
- Setelah pengguna berhasil login, tukarkan token akses dengan
kredensial Firebase, lalu lakukan autentikasi dengan Firebase menggunakan kredensial
Firebase:
Firebase.Auth.Credential credential = Firebase.Auth.GitHubAuthProvider.GetCredential(accessToken); auth.SignInAndRetrieveDataWithCredentialAsync(credential).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("SignInAndRetrieveDataWithCredentialAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("SignInAndRetrieveDataWithCredentialAsync encountered an error: " + task.Exception); return; } Firebase.Auth.AuthResult result = task.Result; Debug.LogFormat("User signed in successfully: {0} ({1})", result.User.DisplayName, result.User.UserId); });
Langkah Berikutnya
Setelah pengguna login untuk pertama kalinya, akun pengguna baru akan dibuat dan ditautkan ke kredensial, yaitu nama pengguna dan sandi, nomor telepon, atau informasi penyedia autentikasi, yang digunakan pengguna tersebut untuk login. Akun baru ini disimpan sebagai bagian dari project Firebase Anda, dan dapat digunakan untuk mengidentifikasi pengguna di setiap aplikasi dalam project, terlepas dari cara pengguna login.
-
Di aplikasi, Anda bisa mendapatkan informasi profil dasar pengguna dari objek
Firebase.Auth.FirebaseUser
:Firebase.Auth.FirebaseUser user = auth.CurrentUser; if (user != null) { string name = user.DisplayName; string email = user.Email; System.Uri photo_url = user.PhotoUrl; // The user's Id, unique to the Firebase project. // Do NOT use this value to authenticate with your backend server, if you // have one; use User.TokenAsync() instead. string uid = user.UserId; }
Di Aturan Keamanan Firebase Realtime Database dan Cloud Storage, Anda bisa mendapatkan ID pengguna unik milik pengguna yang login dari variabel
auth
, dan menggunakannya untuk mengontrol data yang dapat diakses oleh pengguna.
Anda dapat mengizinkan pengguna untuk login ke aplikasi menggunakan beberapa penyedia autentikasi dengan menautkan kredensial penyedia autentikasi ke akun pengguna yang ada.
Untuk memproses logout pengguna, panggil SignOut()
:
auth.SignOut();