         }
       case .linkWithCredential:
         getCredential() { credential in
-          self.user!.link(with: credential) { user, error in
+          self.user!.linkAndRetrieveData(with: credential) { authData, error in
             self.ifNoError(error) {
-              self.showAlert(title: "Linked With Credential", message: user?.textDescription)
+              self.showAlert(title: "Linked With Credential",
+                           message: authData?.user.textDescription)
             }
           }
         }

        }
      case .reauthenticate:
        getCredential() { credential in
          self.user!.reauthenticate(with: credential) { error in
            self.ifNoError(error) {
              self.showAlert(title: "Reauthenticated", message: self.user?.textDescription)
            }
          }

        }
      case .signInWithCredential:
        getCredential() { credential in
          Auth.auth().signInAndRetrieveData(with: credential) { authData, error in
            self.ifNoError(error) {
              self.showAlert(title: "Signed In With Credential",
                           message: authData?.user.textDescription)
            }
          }
        }
