public static void UploadXML(object dataSerializable, string key)
    {
        DatabaseReference referenceRTD = null;
        string            json;

        if (remoteStatus == -1)
        {
            return;
        }

        if (string.IsNullOrEmpty(SGFirebase.userId))
        {
            return;
        }

        json = JsonUtility.ToJson(dataSerializable, false);
        if (string.IsNullOrEmpty(json))
        {
            return;
        }

        // save into remote dabatase
        referenceRTD = SGFirebase.RealTimeDatabase("saved-games/" + SGFirebase.userId + "/" + key);
        if (referenceRTD == null)
        {
            return;
        }

        remoteStatus = -1;
        lastError    = "";

        referenceRTD.SetValueAsync(json).ContinueWith(task => {
            if (task.IsCanceled)
            {
                lastError    = task.Exception.ToString();
                remoteStatus = 0;
                return;
            }
            if (task.IsFaulted)
            {
                lastError    = task.Exception.InnerExceptions[0].InnerException.Message;
                remoteStatus = 0;
                return;
            }

            if (task.IsCompleted)
            {
                remoteStatus = 1;
                return;
            }
        });

        return;
    }
    public static void RemoveXML(string key)
    {
        DatabaseReference referenceRTD = null;

        if (remoteStatus == -1)
        {
            return;
        }

        if (string.IsNullOrEmpty(SGFirebase.userId))
        {
            return;
        }

        // save into remote dabatase
        referenceRTD = SGFirebase.RealTimeDatabase("saved-games/" + SGFirebase.userId + "/" + key);
        if (referenceRTD == null)
        {
            return;
        }

        remoteStatus = -1;
        lastError    = "";

        referenceRTD.RemoveValueAsync().ContinueWith(task => {
            if (task.IsCanceled)
            {
                lastError    = task.Exception.ToString();
                remoteStatus = 0;
                return;
            }
            if (task.IsFaulted)
            {
                lastError    = task.Exception.InnerExceptions[0].InnerException.Message;
                remoteStatus = 0;
                return;
            }

            if (task.IsCompleted)
            {
                remoteStatus = 1;
                return;
            }
        });

        return;
    }
    public static void DownloadXMLs()
    {
        DatabaseReference referenceRTD = null;

        if (remoteStatus == -1)
        {
            return;
        }

        if (string.IsNullOrEmpty(SGFirebase.userId))
        {
            return;
        }

        // remote dabatase
        referenceRTD = SGFirebase.RealTimeDatabase("saved-games/" + SGFirebase.userId);
        if (referenceRTD == null)
        {
            return;
        }

        remoteStatus = -1;
        lastError    = "";
        snapshot     = null;

        referenceRTD.GetValueAsync().ContinueWith(task => {
            if (task.IsCanceled)
            {
                lastError    = task.Exception.ToString();
                remoteStatus = 0;
                return;
            }
            if (task.IsFaulted)
            {
                lastError    = task.Exception.InnerExceptions[0].InnerException.Message;
                remoteStatus = 0;
                return;
            }
            if (task.IsCompleted)
            {
                remoteStatus = 1;
                snapshot     = task.Result;
                return;
            }
        });
    }
Example #4
0
    private void Setup()
    {
        if (string.IsNullOrEmpty(recordSetKey))
        {
            referenceRTD = SGFirebase.RealTimeDatabase(referenceKey);
        }
        else
        {
            referenceRTD = SGFirebase.RealTimeDatabase(referenceKey + "/" + recordSetKey);
        }
        if (referenceRTD == null)
        {
            return;
        }

        referenceRTD.ValueChanged += ValueChanged;
    }