Exemple #1
0
    /// <summary>
    /// Initializes the leaderboards attatched so that they're ready to use
    /// </summary>
    public void Init()
    {
        //setting default instance
        FirebaseApp.DefaultInstance.SetEditorDatabaseUrl(LeaderboardManager.Instance.databaseUrl);
        //Get the user reference to keep everyones latest score
        userRef = FirebaseDatabase.DefaultInstance.GetReference(Application.productName + "/Users");

        //Set up the base reference based on the settings
        string baseRef = "";

        if (LeaderboardManager.Instance.IncludeProductName && LeaderboardManager.Instance.IncludeVersion)
        {
            baseRef = Application.productName + "/" + Application.version.ToString().Replace('.', ',') + "/";
        }
        else if (LeaderboardManager.Instance.IncludeProductName)
        {
            baseRef = Application.productName + "/";
        }
        else if (LeaderboardManager.Instance.IncludeVersion)
        {
            baseRef = Application.version.ToString().Replace('.', ',') + "/";
        }
        baseRef += Name + "/";

        //Set up each leaderboards reference and set up their connections and runs the initial fetch
        if (EnableAllTime)
        {
            string allTimeId = baseRef + "1,AllTime";
            AllTime.DbRef = FirebaseDatabase.DefaultInstance.GetReference(allTimeId);
            AllTime.AddChild();
            AllTime.DbRef.ChildChanged += AllTime.ChangeChild;
            AllTime.DbRef.ChildAdded   += AllTime.AddChild;
            AllTime.DbRef.ChildRemoved += AllTime.RemoveChild;
        }
        if (EnableWeekly)
        {
            #region Weekcheck
            CultureInfo      myCI       = new CultureInfo("en-US");
            Calendar         myCal      = myCI.Calendar;
            DateTime         lastDay    = new System.DateTime(DateTime.Now.Year, 12, 31);
            CalendarWeekRule myCWR      = myCI.DateTimeFormat.CalendarWeekRule;
            DayOfWeek        myFirstDOW = DayOfWeek.Monday;
            int week = myCal.GetWeekOfYear(DateTime.Now, myCWR, myFirstDOW);
            #endregion
            string weekId = baseRef + "2,Weekly/" + DateTime.Now.Year + "," + week.ToString();
            Weekly.DbRef = FirebaseDatabase.DefaultInstance.GetReference(weekId);
            Weekly.AddChild();
            Weekly.DbRef.ChildChanged += Weekly.ChangeChild;
            Weekly.DbRef.ChildAdded   += Weekly.AddChild;
            Weekly.DbRef.ChildRemoved += Weekly.RemoveChild;
        }
        if (EnableDaily)
        {
            string dayId = baseRef + "3,Daily/" + DateTime.Now.Year + "," + DateTime.Now.DayOfYear;
            Daily.DbRef = FirebaseDatabase.DefaultInstance.GetReference(dayId);
            Daily.AddChild();
            Daily.DbRef.ChildChanged += Daily.ChangeChild;
            Daily.DbRef.ChildAdded   += Daily.AddChild;
            Daily.DbRef.ChildRemoved += Daily.RemoveChild;
        }
    }