using Firebase.Database; using Firebase.Storage; using System; using System.Threading.Tasks; using UnityEngine; public class StorageManager : MonoBehaviour { public GameObject PicturePlayer; public GameObject Canvas; private FirebaseStorage storage; private DatabaseReference realtimeDB; void Awake() { FirebaseInitializer.Instance.onFirebaseReady += Initialize; } void Initialize() { FirebaseInitializer.Instance.onFirebaseReady -= Initialize; storage = FirebaseStorage.DefaultInstance; realtimeDB = FirebaseDatabase.DefaultInstance.RootReference; } // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { } public void UploadPhoto() { Texture2D photo = PicturePlayer.GetComponent().GetPhoto(); byte[] photoBytes = ImageConversion.EncodeToJPG(photo); GameManager game = Canvas.GetComponent(); string imageUuid = Guid.NewGuid().ToString(); StorageReference storageRef = storage.GetReferenceFromUrl("gs://ggj2024-5cb41.appspot.com"); StorageReference imageRef = storageRef.Child(game.myRoom.code).Child(game.currentPlayer.id).Child($"{imageUuid}.jpg"); imageRef.PutBytesAsync(photoBytes).ContinueWith((Task task) => { if (task.IsFaulted || task.IsCanceled) { Debug.LogException(task.Exception); // Uh-oh, an error occurred! } else { // Metadata contains file metadata such as size, content-type, and md5hash. StorageMetadata metadata = task.Result; } }); } }