public static async Task Login(ChatsViewController thisView, string inputEmail, string inputPassword) { bool done = false; AppData.auth.SignInWithPassword(inputEmail, inputPassword, async(user, error) => { if (error != null) { AlertShow.Alert(thisView, "Error", "The following Error has occured: " + error.ToString()); return; } UserClass newUser = new UserClass { Name = user.User.DisplayName, Uid = user.User.Uid, Email = user.User.Email }; SetLocalUser.Set(newUser); await thisView.ReloadData(); AlertShow.Alert(thisView, "Login Was Successful", "Welcome back " + newUser.Name); done = true; }); while (!done) { await Task.Delay(50); } }
public static async Task Register(ChatsViewController thisView, string inputName, string inputEmail, string inputPassword) { bool done = false; AppData.auth.CreateUser(inputEmail, inputPassword, (user, error) => { if (error != null) { AlertShow.Alert(thisView, "Error", "This went wrong: " + error.UserInfo.Description); return; } UserProfileChangeRequest changeRequest = user.User.ProfileChangeRequest(); changeRequest.DisplayName = inputName; changeRequest.CommitChanges(async(profileError) => { if (profileError != null) { AlertShow.Alert(thisView, "Error", "Profile Error: " + profileError); return; } SetLocalUser.Set(new UserClass { Name = user.User.DisplayName, Email = user.User.Email, Uid = user.User.Uid }); object[] userKeys = { "name", "email", "uid" }; object[] userVals = { user.User.DisplayName, user.User.Email, user.User.Uid }; var userDict = NSDictionary.FromObjectsAndKeys(userVals, userKeys); AppData.UsersNode.GetChild(user.User.Uid).SetValue <NSDictionary>(userDict); foreach (ChatListClass any in AppData.currentLST) { if (any.ChatOwner.Uid == AppData.curUser.Uid) { SaveListOnCloud.Save(any); } } await thisView.ReloadData(); AlertShow.Alert(thisView, "Success", "You are now registered on Coder"); done = true; }); }); while (!done) { await Task.Delay(50); } }