public void MakeNewGroup(string groupname) { string newKey = FirebaseDatabase.DefaultInstance.GetReference("GROUP/").Push().Key; //새로운 키를 생성함 -> 그룹 고유의 아이디임 Group newbe = new Group(newKey, groupname, userID); DB_GROUPCODE db = new DB_GROUPCODE(); db.code = newKey; db.member.Add(userID); db.name = groupname; string json = JsonUtility.ToJson(db); FirebaseDatabase.DefaultInstance.GetReference("GROUP/" + newKey).SetRawJsonValueAsync(json); _controller.group_list.Add(newbe); int index = _controller.group_list.Count - 1; GROUPDB tmpdb = new GROUPDB(); tmpdb.code = newKey; FirebaseDatabase.DefaultInstance.GetReference("USER/" + userID + "/group_list/" + index).SetRawJsonValueAsync(JsonUtility.ToJson(tmpdb)); }
public void AcceptInvite(Feed feed) { string code = feed.groupcode; FirebaseDatabase.DefaultInstance.GetReference("GROUP/" + code).GetValueAsync().ContinueWith(task => { if (task.IsFaulted) { } else if (task.IsCanceled) { } else if (task.IsCompleted) { DataSnapshot snap = task.Result; Group group = new Group(); if (snap.ChildrenCount == 0) { Debug.Log("empty"); return; } IDictionary result = (IDictionary)snap.Value; group.name = result["name"].ToString(); group.code = result["code"].ToString(); //그룹의 시간표 if (result.Contains("events_list")) { Dictionary <string, object> evnet_list = (Dictionary <string, object>)result["events_list"]; //List<object> evnet_list = (List<object>)result["events_list"]; foreach (var eitem in evnet_list) { string key = eitem.Key; IDictionary tmp = (IDictionary)eitem.Value; int year = Convert.ToInt32(tmp["year"].ToString()); int month = Convert.ToInt32(tmp["month"].ToString()); int day = Convert.ToInt32(tmp["day"].ToString()); int hour = Convert.ToInt32(tmp["hour"].ToString()); int min = Convert.ToInt32(tmp["min"].ToString()); string title = tmp["title"].ToString(); string description = tmp["description"].ToString(); string place = tmp["place"].ToString(); group.events_list.Add(key, new Events(year, month, day, hour, min, title, description, place)); } } if (result.Contains("feed")) { Dictionary <string, object> feed_list = (Dictionary <string, object>)result["feed"]; //List<object> evnet_list = (List<object>)result["events_list"]; foreach (var eitem in feed_list) { string key = eitem.Key; IDictionary tmp = (IDictionary)eitem.Value; string title = tmp["title"].ToString(); string body = tmp["body"].ToString(); string gcode = group.code; MainController.Feed tmpFeed = new MainController.Feed(); tmpFeed.title = title; tmpFeed.body = body; tmpFeed.groupcode = gcode; group.feed_list.Add(key, tmpFeed); } } DB_GROUPCODE tmpdb = new DB_GROUPCODE(); if (result.Contains("member")) { List <object> memberlist = (List <object>)result["member"]; foreach (var sitem in memberlist) { tmpdb.member.Add(sitem.ToString()); if (!sitem.ToString().Equals(userID)) { RetrieveMemberData(group, sitem.ToString()); } } } tmpdb.code = code; tmpdb.name = group.name; tmpdb.member.Add(userID); //todo add groupinfo _controller.group_list.Add(group); Debug.Log("add"); int memberidx = _controller.group_list[_controller.group_list.Count - 1].member.Count; FirebaseDatabase.DefaultInstance.GetReference("GROUP/" + code).SetRawJsonValueAsync(JsonUtility.ToJson(tmpdb)); int gidx = _controller.group_list.Count - 1; GROUPDB DB = new GROUPDB(); DB.code = code; FirebaseDatabase.DefaultInstance.GetReference("USER/" + userID + "/group_list/" + gidx).SetRawJsonValueAsync(JsonUtility.ToJson(DB)); _controller.setGroup(); } }); }