code: function(userCredential) {
          component.dismissDialog();
          // Show code verified dialog.
          component.showProgressDialog(
              firebaseui.auth.ui.element.progressDialog.State.DONE,
              firebaseui.auth.soy2.strings.dialogCodeVerified().toString());
          // Keep on display for long enough to be seen.
          var codeVerifiedTimer = setTimeout(function() {
            // Dismiss dialog and dispose of component before completing sign-in.
            component.dismissDialog();
            component.dispose();
            var authResult = /** @type {!firebaseui.auth.AuthResult} */ ({
              // User already signed on external instance.
              'user': app.getExternalAuth().currentUser,
              // Phone Auth operations do not return a credential.
              'credential': null,
              'operationType': userCredential['operationType'],
              'additionalUserInfo': userCredential['additionalUserInfo']
            });
            firebaseui.auth.widget.handler.common.setLoggedInWithAuthResult(
                app, component, authResult, true);
          }, firebaseui.auth.widget.handler.CODE_SUCCESS_DIALOG_DELAY);
          // On reset, clear timeout.
          app.registerPending(function() {
            // Dismiss dialog if still visible.
            if (component) {
              component.dismissDialog();
            }
            clearTimeout(codeVerifiedTimer);
          });
        }
docs: On success a user credential is returned.