3426 lines
119 KiB
JavaScript
3426 lines
119 KiB
JavaScript
|
/**
|
|||
|
* @license Copyright 2017 Google Inc.
|
|||
|
*
|
|||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|||
|
* you may not use this file except in compliance with the License.
|
|||
|
* You may obtain a copy of the License at
|
|||
|
*
|
|||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
*
|
|||
|
* Unless required by applicable law or agreed to in writing, software
|
|||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|||
|
* See the License for the specific language governing permissions and
|
|||
|
* limitations under the License.
|
|||
|
*/
|
|||
|
|
|||
|
/**
|
|||
|
* @fileoverview Firebase Auth API.
|
|||
|
* @externs
|
|||
|
*/
|
|||
|
|
|||
|
/**
|
|||
|
* Gets the {@link firebase.auth.Auth `Auth`} service for the default app or a
|
|||
|
* given app.
|
|||
|
*
|
|||
|
* `firebase.auth()` can be called with no arguments to access the default app's
|
|||
|
* {@link firebase.auth.Auth `Auth`} service or as `firebase.auth(app)` to
|
|||
|
* access the {@link firebase.auth.Auth `Auth`} service associated with a
|
|||
|
* specific app.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* // Get the Auth service for the default app
|
|||
|
* var defaultAuth = firebase.auth();
|
|||
|
*
|
|||
|
* @example
|
|||
|
* // Get the Auth service for a given app
|
|||
|
* var otherAuth = firebase.auth(otherApp);
|
|||
|
*
|
|||
|
* @namespace
|
|||
|
* @param {!firebase.app.App=} app
|
|||
|
*
|
|||
|
* @return {!firebase.auth.Auth}
|
|||
|
*/
|
|||
|
firebase.auth = function(app) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Interface that represents the credentials returned by an auth provider.
|
|||
|
* Implementations specify the details about each auth provider's credential
|
|||
|
* requirements.
|
|||
|
*
|
|||
|
* @interface
|
|||
|
*/
|
|||
|
firebase.auth.AuthCredential = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* The authentication provider ID for the credential.
|
|||
|
* For example, 'facebook.com', or 'google.com'.
|
|||
|
*
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.AuthCredential.prototype.providerId;
|
|||
|
|
|||
|
/**
|
|||
|
* The authentication sign in method for the credential.
|
|||
|
* For example, 'password', or 'emailLink. This corresponds to the sign-in
|
|||
|
* method identifier as returned in
|
|||
|
* {@link firebase.auth.Auth#fetchSignInMethodsForEmail}.
|
|||
|
*
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.AuthCredential.prototype.signInMethod;
|
|||
|
|
|||
|
/**
|
|||
|
* Static method to deserialize a JSON representation of an object into an
|
|||
|
* {@link firebase.auth.AuthCredential}. Input can be either Object or the
|
|||
|
* stringified representation of the object. When string is provided,
|
|||
|
* JSON.parse would be called first. If the JSON input does not represent an
|
|||
|
* `AuthCredential`, null is returned.
|
|||
|
* @param {string|!Object} json The plain object representation of an
|
|||
|
* AuthCredential.
|
|||
|
* @return {?firebase.auth.AuthCredential} The auth credential.
|
|||
|
*/
|
|||
|
firebase.auth.AuthCredential.fromJSON = function(json) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Returns a JSON-serializable representation of this object.
|
|||
|
* @return {!Object} The plain object representation of the `AuthCredential`.
|
|||
|
*/
|
|||
|
firebase.auth.AuthCredential.prototype.toJSON = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* Defines the options for initializing an
|
|||
|
* {@link firebase.auth.OAuthCredential}. For ID tokens with nonce claim,
|
|||
|
* the raw nonce has to also be provided.
|
|||
|
*
|
|||
|
* @interface
|
|||
|
*/
|
|||
|
firebase.auth.OAuthCredentialOptions = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* The OAuth ID token used to initialize the OAuthCredential.
|
|||
|
*
|
|||
|
* @type {string|undefined}
|
|||
|
*/
|
|||
|
firebase.auth.OAuthCredentialOptions.prototype.idToken;
|
|||
|
|
|||
|
/**
|
|||
|
* The OAuth access token used to initialize the OAuthCredential.
|
|||
|
*
|
|||
|
* @type {string|undefined}
|
|||
|
*/
|
|||
|
firebase.auth.OAuthCredentialOptions.prototype.accessToken;
|
|||
|
|
|||
|
/**
|
|||
|
* The raw nonce associated with the ID token. It is required when an ID token
|
|||
|
* with a nonce field is provided. The SHA-256 hash of the raw nonce must match
|
|||
|
* the nonce field in the ID token.
|
|||
|
*
|
|||
|
* @type {string|undefined}
|
|||
|
*/
|
|||
|
firebase.auth.OAuthCredentialOptions.prototype.rawNonce;
|
|||
|
|
|||
|
/**
|
|||
|
* Interface that represents the OAuth credentials returned by an OAuth
|
|||
|
* provider. Implementations specify the details about each auth provider's
|
|||
|
* credential requirements.
|
|||
|
*
|
|||
|
* @interface
|
|||
|
* @extends {firebase.auth.AuthCredential}
|
|||
|
*/
|
|||
|
firebase.auth.OAuthCredential = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* The OAuth ID token associated with the credential if it belongs to an
|
|||
|
* OIDC provider, such as `google.com`.
|
|||
|
*
|
|||
|
* @type {?string|undefined}
|
|||
|
*/
|
|||
|
firebase.auth.OAuthCredential.prototype.idToken;
|
|||
|
|
|||
|
/**
|
|||
|
* The OAuth access token associated with the credential if it belongs to an
|
|||
|
* OAuth provider, such as `facebook.com`, `twitter.com`, etc.
|
|||
|
*
|
|||
|
* @type {?string|undefined}
|
|||
|
*/
|
|||
|
firebase.auth.OAuthCredential.prototype.accessToken;
|
|||
|
|
|||
|
/**
|
|||
|
* The OAuth access token secret associated with the credential if it belongs
|
|||
|
* to an OAuth 1.0 provider, such as `twitter.com`.
|
|||
|
*
|
|||
|
* @type {?string|undefined}
|
|||
|
*/
|
|||
|
firebase.auth.OAuthCredential.prototype.secret;
|
|||
|
|
|||
|
/**
|
|||
|
* Interface that represents the phone credentials returned by a phone provider.
|
|||
|
*
|
|||
|
* @interface
|
|||
|
* @extends {firebase.auth.AuthCredential}
|
|||
|
*/
|
|||
|
firebase.auth.PhoneAuthCredential = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* Gets the {@link firebase.auth.Auth `Auth`} service for the current app.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* var auth = app.auth();
|
|||
|
* // The above is shorthand for:
|
|||
|
* // var auth = firebase.auth(app);
|
|||
|
*
|
|||
|
* @return {!firebase.auth.Auth}
|
|||
|
*/
|
|||
|
firebase.app.App.prototype.auth = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* Interface representing a user's metadata.
|
|||
|
*
|
|||
|
* @interface
|
|||
|
*/
|
|||
|
firebase.auth.UserMetadata = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* The date the user last signed in, formatted as a UTC string.
|
|||
|
* For example, 'Fri, 22 Sep 2017 01:49:58 GMT'.
|
|||
|
*
|
|||
|
* @type {?string}
|
|||
|
*/
|
|||
|
firebase.auth.UserMetadata.prototype.lastSignInTime;
|
|||
|
|
|||
|
/**
|
|||
|
* The date the user was created, formatted as a UTC string.
|
|||
|
* For example, 'Fri, 22 Sep 2017 01:49:58 GMT'.
|
|||
|
*
|
|||
|
* @type {?string}
|
|||
|
*/
|
|||
|
firebase.auth.UserMetadata.prototype.creationTime;
|
|||
|
|
|||
|
/**
|
|||
|
* User profile information, visible only to the Firebase project's
|
|||
|
* apps.
|
|||
|
*
|
|||
|
* @interface
|
|||
|
*/
|
|||
|
firebase.UserInfo = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* The user's unique ID.
|
|||
|
*
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.UserInfo.prototype.uid;
|
|||
|
|
|||
|
/**
|
|||
|
* The authentication provider ID for the current user.
|
|||
|
* For example, 'facebook.com', or 'google.com'.
|
|||
|
*
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.UserInfo.prototype.providerId;
|
|||
|
|
|||
|
/**
|
|||
|
* The user's email address (if available).
|
|||
|
* @type {?string}
|
|||
|
*/
|
|||
|
firebase.UserInfo.prototype.email;
|
|||
|
|
|||
|
/**
|
|||
|
* The user's display name (if available).
|
|||
|
*
|
|||
|
* @type {?string}
|
|||
|
*/
|
|||
|
firebase.UserInfo.prototype.displayName;
|
|||
|
|
|||
|
/**
|
|||
|
* The URL of the user's profile picture (if available).
|
|||
|
*
|
|||
|
* @type {?string}
|
|||
|
*/
|
|||
|
firebase.UserInfo.prototype.photoURL;
|
|||
|
|
|||
|
/**
|
|||
|
* The user's E.164 formatted phone number (if available).
|
|||
|
*
|
|||
|
* @type {?string}
|
|||
|
*/
|
|||
|
firebase.UserInfo.prototype.phoneNumber;
|
|||
|
|
|||
|
/**
|
|||
|
* A user account.
|
|||
|
*
|
|||
|
* @interface
|
|||
|
* @extends {firebase.UserInfo}
|
|||
|
*/
|
|||
|
firebase.User = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* The phone number normalized based on the E.164 standard (e.g. +16505550101)
|
|||
|
* for the current user. This is null if the user has no phone credential linked
|
|||
|
* to the account.
|
|||
|
* @type {?string}
|
|||
|
*/
|
|||
|
firebase.User.prototype.phoneNumber;
|
|||
|
|
|||
|
/** @type {boolean} */
|
|||
|
firebase.User.prototype.isAnonymous;
|
|||
|
|
|||
|
/**
|
|||
|
* True if the user's email address has been verified.
|
|||
|
* @type {boolean}
|
|||
|
*/
|
|||
|
firebase.User.prototype.emailVerified;
|
|||
|
|
|||
|
/**
|
|||
|
* Additional metadata about the user.
|
|||
|
* @type {!firebase.auth.UserMetadata}
|
|||
|
*/
|
|||
|
firebase.User.prototype.metadata;
|
|||
|
|
|||
|
/**
|
|||
|
* Additional provider-specific information about the user.
|
|||
|
* @type {!Array<firebase.UserInfo>}
|
|||
|
*/
|
|||
|
firebase.User.prototype.providerData;
|
|||
|
|
|||
|
/**
|
|||
|
* A refresh token for the user account. Use only for advanced scenarios that
|
|||
|
* require explicitly refreshing tokens.
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.User.prototype.refreshToken;
|
|||
|
|
|||
|
/**
|
|||
|
* The {@link firebase.User.MultiFactor} object corresponding to the current
|
|||
|
* user. This is used to access all multi-factor properties and operations
|
|||
|
* related to the current user.
|
|||
|
* @type {!firebase.User.MultiFactorUser}
|
|||
|
*/
|
|||
|
firebase.User.prototype.multiFactor;
|
|||
|
|
|||
|
/**
|
|||
|
* The current user's tenant ID. This is a read-only property, which indicates
|
|||
|
* the tenant ID used to sign in the current user. This is null if the user is
|
|||
|
* signed in from the parent project.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* ```javascript
|
|||
|
* // Set the tenant ID on Auth instance.
|
|||
|
* firebase.auth().tenantId = ‘TENANT_PROJECT_ID’;
|
|||
|
*
|
|||
|
* // All future sign-in request now include tenant ID.
|
|||
|
* firebase.auth().signInWithEmailAndPassword(email, password)
|
|||
|
* .then(function(result) {
|
|||
|
* // result.user.tenantId should be ‘TENANT_PROJECT_ID’.
|
|||
|
* }).catch(function(error) {
|
|||
|
* // Handle error.
|
|||
|
* });
|
|||
|
* ```
|
|||
|
* @type {?string}
|
|||
|
*/
|
|||
|
firebase.User.prototype.tenantId;
|
|||
|
|
|||
|
/**
|
|||
|
* Returns a JWT token used to identify the user to a Firebase service.
|
|||
|
*
|
|||
|
* Returns the current token if it has not expired, otherwise this will
|
|||
|
* refresh the token and return a new one.
|
|||
|
*
|
|||
|
* @param {boolean=} forceRefresh Force refresh regardless of token
|
|||
|
* expiration.
|
|||
|
* @return {!firebase.Promise<string>}
|
|||
|
*/
|
|||
|
firebase.User.prototype.getIdToken = function(forceRefresh) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Refreshes the current user, if signed in.
|
|||
|
*
|
|||
|
* @return {!firebase.Promise<void>}
|
|||
|
*/
|
|||
|
firebase.User.prototype.reload = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* Sends a verification email to a user.
|
|||
|
*
|
|||
|
* The verification process is completed by calling
|
|||
|
* {@link firebase.auth.Auth#applyActionCode}
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/missing-android-pkg-name</dt>
|
|||
|
* <dd>An Android package name must be provided if the Android app is required
|
|||
|
* to be installed.</dd>
|
|||
|
* <dt>auth/missing-continue-uri</dt>
|
|||
|
* <dd>A continue URL must be provided in the request.</dd>
|
|||
|
* <dt>auth/missing-ios-bundle-id</dt>
|
|||
|
* <dd>An iOS bundle ID must be provided if an App Store ID is provided.</dd>
|
|||
|
* <dt>auth/invalid-continue-uri</dt>
|
|||
|
* <dd>The continue URL provided in the request is invalid.</dd>
|
|||
|
* <dt>auth/unauthorized-continue-uri</dt>
|
|||
|
* <dd>The domain of the continue URL is not whitelisted. Whitelist
|
|||
|
* the domain in the Firebase console.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @example
|
|||
|
* var actionCodeSettings = {
|
|||
|
* url: 'https://www.example.com/cart?email=user@example.com&cartId=123',
|
|||
|
* iOS: {
|
|||
|
* bundleId: 'com.example.ios'
|
|||
|
* },
|
|||
|
* android: {
|
|||
|
* packageName: 'com.example.android',
|
|||
|
* installApp: true,
|
|||
|
* minimumVersion: '12'
|
|||
|
* },
|
|||
|
* handleCodeInApp: true
|
|||
|
* };
|
|||
|
* firebase.auth().currentUser.sendEmailVerification(actionCodeSettings)
|
|||
|
* .then(function() {
|
|||
|
* // Verification email sent.
|
|||
|
* })
|
|||
|
* .catch(function(error) {
|
|||
|
* // Error occurred. Inspect error.code.
|
|||
|
* });
|
|||
|
*
|
|||
|
* @param {?firebase.auth.ActionCodeSettings=} actionCodeSettings The action
|
|||
|
* code settings. If specified, the state/continue URL will be set as the
|
|||
|
* "continueUrl" parameter in the email verification link. The default email
|
|||
|
* verification landing page will use this to display a link to go back to
|
|||
|
* the app if it is installed.
|
|||
|
* If the actionCodeSettings is not specified, no URL is appended to the
|
|||
|
* action URL.
|
|||
|
* The state URL provided must belong to a domain that is whitelisted by the
|
|||
|
* developer in the console. Otherwise an error will be thrown.
|
|||
|
* Mobile app redirects will only be applicable if the developer configures
|
|||
|
* and accepts the Firebase Dynamic Links terms of condition.
|
|||
|
* The Android package name and iOS bundle ID will be respected only if they
|
|||
|
* are configured in the same Firebase Auth project used.
|
|||
|
* @return {!firebase.Promise<void>}
|
|||
|
*/
|
|||
|
firebase.User.prototype.sendEmailVerification = function(actionCodeSettings) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Links the user account with the given credentials.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/provider-already-linked</dt>
|
|||
|
* <dd>Thrown if the provider has already been linked to the user. This error is
|
|||
|
* thrown even if this is not the same provider's account that is currently
|
|||
|
* linked to the user.</dd>
|
|||
|
* <dt>auth/invalid-credential</dt>
|
|||
|
* <dd>Thrown if the provider's credential is not valid. This can happen if it
|
|||
|
* has already expired when calling link, or if it used invalid token(s).
|
|||
|
* See the Firebase documentation for your provider, and make sure you pass
|
|||
|
* in the correct parameters to the credential method.</dd>
|
|||
|
* <dt>auth/credential-already-in-use</dt>
|
|||
|
* <dd>Thrown if the account corresponding to the credential already exists
|
|||
|
* among your users, or is already linked to a Firebase User.
|
|||
|
* For example, this error could be thrown if you are upgrading an anonymous
|
|||
|
* user to a Google user by linking a Google credential to it and the Google
|
|||
|
* credential used is already associated with an existing Firebase Google
|
|||
|
* user.
|
|||
|
* The fields <code>error.email</code>, <code>error.phoneNumber</code>, and
|
|||
|
* <code>error.credential</code> ({@link firebase.auth.AuthCredential})
|
|||
|
* may be provided, depending on the type of credential. You can recover
|
|||
|
* from this error by signing in with <code>error.credential</code> directly
|
|||
|
* via {@link firebase.auth.Auth#signInWithCredential}.</dd>
|
|||
|
* <dt>auth/email-already-in-use</dt>
|
|||
|
* <dd>Thrown if the email corresponding to the credential already exists
|
|||
|
* among your users. When thrown while linking a credential to an existing
|
|||
|
* user, an <code>error.email</code> and <code>error.credential</code>
|
|||
|
* ({@link firebase.auth.AuthCredential}) fields are also provided.
|
|||
|
* You have to link the credential to the existing user with that email if
|
|||
|
* you wish to continue signing in with that credential. To do so, call
|
|||
|
* {@link firebase.auth.Auth#fetchSignInMethodsForEmail}, sign in to
|
|||
|
* <code>error.email</code> via one of the providers returned and then
|
|||
|
* {@link firebase.User#linkWithCredential} the original credential to that
|
|||
|
* newly signed in user.</dd>
|
|||
|
* <dt>auth/operation-not-allowed</dt>
|
|||
|
* <dd>Thrown if you have not enabled the provider in the Firebase Console. Go
|
|||
|
* to the Firebase Console for your project, in the Auth section and the
|
|||
|
* <strong>Sign in Method</strong> tab and configure the provider.</dd>
|
|||
|
* <dt>auth/invalid-email</dt>
|
|||
|
* <dd>Thrown if the email used in a
|
|||
|
* {@link firebase.auth.EmailAuthProvider#credential} is invalid.</dd>
|
|||
|
* <dt>auth/wrong-password</dt>
|
|||
|
* <dd>Thrown if the password used in a
|
|||
|
* {@link firebase.auth.EmailAuthProvider#credential} is not correct or
|
|||
|
* when the user associated with the email does not have a password.</dd>
|
|||
|
* <dt>auth/invalid-verification-code</dt>
|
|||
|
* <dd>Thrown if the credential is a
|
|||
|
* {@link firebase.auth.PhoneAuthProvider#credential} and the verification
|
|||
|
* code of the credential is not valid.</dd>
|
|||
|
* <dt>auth/invalid-verification-id</dt>
|
|||
|
* <dd>Thrown if the credential is a
|
|||
|
* {@link firebase.auth.PhoneAuthProvider#credential} and the verification
|
|||
|
* ID of the credential is not valid.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @param {!firebase.auth.AuthCredential} credential The auth credential.
|
|||
|
* @return {!firebase.Promise<!firebase.auth.UserCredential>}
|
|||
|
*/
|
|||
|
firebase.User.prototype.linkWithCredential = function(credential) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Links the user account with the given credentials, and returns any available
|
|||
|
* additional user information, such as user name.
|
|||
|
*
|
|||
|
* This method is deprecated. Use
|
|||
|
* {@link firebase.User#linkWithCredential} instead.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/provider-already-linked</dt>
|
|||
|
* <dd>Thrown if the provider has already been linked to the user. This error is
|
|||
|
* thrown even if this is not the same provider's account that is currently
|
|||
|
* linked to the user.</dd>
|
|||
|
* <dt>auth/invalid-credential</dt>
|
|||
|
* <dd>Thrown if the provider's credential is not valid. This can happen if it
|
|||
|
* has already expired when calling link, or if it used invalid token(s).
|
|||
|
* See the Firebase documentation for your provider, and make sure you pass
|
|||
|
* in the correct parameters to the credential method.</dd>
|
|||
|
* <dt>auth/credential-already-in-use</dt>
|
|||
|
* <dd>Thrown if the account corresponding to the credential already exists
|
|||
|
* among your users, or is already linked to a Firebase User.
|
|||
|
* For example, this error could be thrown if you are upgrading an anonymous
|
|||
|
* user to a Google user by linking a Google credential to it and the Google
|
|||
|
* credential used is already associated with an existing Firebase Google
|
|||
|
* user.
|
|||
|
* The fields <code>error.email</code>, <code>error.phoneNumber</code>, and
|
|||
|
* <code>error.credential</code> ({@link firebase.auth.AuthCredential})
|
|||
|
* may be provided, depending on the type of credential. You can recover
|
|||
|
* from this error by signing in with <code>error.credential</code> directly
|
|||
|
* via {@link firebase.auth.Auth#signInWithCredential}.</dd>
|
|||
|
* <dt>auth/email-already-in-use</dt>
|
|||
|
* <dd>Thrown if the email corresponding to the credential already exists
|
|||
|
* among your users. When thrown while linking a credential to an existing
|
|||
|
* user, an <code>error.email</code> and <code>error.credential</code>
|
|||
|
* ({@link firebase.auth.AuthCredential}) fields are also provided.
|
|||
|
* You have to link the credential to the existing user with that email if
|
|||
|
* you wish to continue signing in with that credential. To do so, call
|
|||
|
* {@link firebase.auth.Auth#fetchSignInMethodsForEmail}, sign in to
|
|||
|
* <code>error.email</code> via one of the providers returned and then
|
|||
|
* {@link firebase.User#linkWithCredential} the original credential to that
|
|||
|
* newly signed in user.</dd>
|
|||
|
* <dt>auth/operation-not-allowed</dt>
|
|||
|
* <dd>Thrown if you have not enabled the provider in the Firebase Console. Go
|
|||
|
* to the Firebase Console for your project, in the Auth section and the
|
|||
|
* <strong>Sign in Method</strong> tab and configure the provider.</dd>
|
|||
|
* <dt>auth/invalid-email</dt>
|
|||
|
* <dd>Thrown if the email used in a
|
|||
|
* {@link firebase.auth.EmailAuthProvider#credential} is invalid.</dd>
|
|||
|
* <dt>auth/wrong-password</dt>
|
|||
|
* <dd>Thrown if the password used in a
|
|||
|
* {@link firebase.auth.EmailAuthProvider#credential} is not correct or
|
|||
|
* when the user associated with the email does not have a password.</dd>
|
|||
|
* <dt>auth/invalid-verification-code</dt>
|
|||
|
* <dd>Thrown if the credential is a
|
|||
|
* {@link firebase.auth.PhoneAuthProvider#credential} and the verification
|
|||
|
* code of the credential is not valid.</dd>
|
|||
|
* <dt>auth/invalid-verification-id</dt>
|
|||
|
* <dd>Thrown if the credential is a
|
|||
|
* {@link firebase.auth.PhoneAuthProvider#credential} and the verification
|
|||
|
* ID of the credential is not valid.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @param {!firebase.auth.AuthCredential} credential The auth credential.
|
|||
|
* @return {!firebase.Promise<!firebase.auth.UserCredential>}
|
|||
|
*/
|
|||
|
firebase.User.prototype.linkAndRetrieveDataWithCredential = function(
|
|||
|
credential
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Links the user account with the given phone number.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/provider-already-linked</dt>
|
|||
|
* <dd>Thrown if the provider has already been linked to the user. This error is
|
|||
|
* thrown even if this is not the same provider's account that is currently
|
|||
|
* linked to the user.</dd>
|
|||
|
* <dt>auth/captcha-check-failed</dt>
|
|||
|
* <dd>Thrown if the reCAPTCHA response token was invalid, expired, or if
|
|||
|
* this method was called from a non-whitelisted domain.</dd>
|
|||
|
* <dt>auth/invalid-phone-number</dt>
|
|||
|
* <dd>Thrown if the phone number has an invalid format.</dd>
|
|||
|
* <dt>auth/missing-phone-number</dt>
|
|||
|
* <dd>Thrown if the phone number is missing.</dd>
|
|||
|
* <dt>auth/quota-exceeded</dt>
|
|||
|
* <dd>Thrown if the SMS quota for the Firebase project has been exceeded.</dd>
|
|||
|
* <dt>auth/user-disabled</dt>
|
|||
|
* <dd>Thrown if the user corresponding to the given phone number has been
|
|||
|
* disabled.</dd>
|
|||
|
* <dt>auth/credential-already-in-use</dt>
|
|||
|
* <dd>Thrown if the account corresponding to the phone number already exists
|
|||
|
* among your users, or is already linked to a Firebase User.
|
|||
|
* The fields <code>error.phoneNumber</code> and
|
|||
|
* <code>error.credential</code> ({@link firebase.auth.AuthCredential})
|
|||
|
* are provided in this case. You can recover from this error by signing in
|
|||
|
* with that credential directly via
|
|||
|
* {@link firebase.auth.Auth#signInWithCredential}.</dd>
|
|||
|
* <dt>auth/operation-not-allowed</dt>
|
|||
|
* <dd>Thrown if you have not enabled the phone authentication provider in the
|
|||
|
* Firebase Console. Go to the Firebase Console for your project, in the
|
|||
|
* Auth section and the <strong>Sign in Method</strong> tab and configure
|
|||
|
* the provider.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @param {string} phoneNumber The user's phone number in E.164 format (e.g.
|
|||
|
* +16505550101).
|
|||
|
* @param {!firebase.auth.ApplicationVerifier} applicationVerifier
|
|||
|
* @return {!firebase.Promise<!firebase.auth.ConfirmationResult>}
|
|||
|
*/
|
|||
|
firebase.User.prototype.linkWithPhoneNumber = function(
|
|||
|
phoneNumber,
|
|||
|
applicationVerifier
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Unlinks a provider from a user account.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/no-such-provider</dt>
|
|||
|
* <dd>Thrown if the user does not have this provider linked or when the
|
|||
|
* provider ID given does not exist.</dd>
|
|||
|
* </dt>
|
|||
|
*
|
|||
|
* @param {string} providerId
|
|||
|
* @return {!firebase.Promise<!firebase.User>}
|
|||
|
*/
|
|||
|
firebase.User.prototype.unlink = function(providerId) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Re-authenticates a user using a fresh credential. Use before operations
|
|||
|
* such as {@link firebase.User#updatePassword} that require tokens from recent
|
|||
|
* sign-in attempts.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/user-mismatch</dt>
|
|||
|
* <dd>Thrown if the credential given does not correspond to the user.</dd>
|
|||
|
* <dt>auth/user-not-found</dt>
|
|||
|
* <dd>Thrown if the credential given does not correspond to any existing user.
|
|||
|
* </dd>
|
|||
|
* <dt>auth/invalid-credential</dt>
|
|||
|
* <dd>Thrown if the provider's credential is not valid. This can happen if it
|
|||
|
* has already expired when calling link, or if it used invalid token(s).
|
|||
|
* See the Firebase documentation for your provider, and make sure you pass
|
|||
|
* in the correct parameters to the credential method.</dd>
|
|||
|
* <dt>auth/invalid-email</dt>
|
|||
|
* <dd>Thrown if the email used in a
|
|||
|
* {@link firebase.auth.EmailAuthProvider#credential} is invalid.</dd>
|
|||
|
* <dt>auth/wrong-password</dt>
|
|||
|
* <dd>Thrown if the password used in a
|
|||
|
* {@link firebase.auth.EmailAuthProvider#credential} is not correct or when
|
|||
|
* the user associated with the email does not have a password.</dd>
|
|||
|
* <dt>auth/invalid-verification-code</dt>
|
|||
|
* <dd>Thrown if the credential is a
|
|||
|
* {@link firebase.auth.PhoneAuthProvider#credential} and the verification
|
|||
|
* code of the credential is not valid.</dd>
|
|||
|
* <dt>auth/invalid-verification-id</dt>
|
|||
|
* <dd>Thrown if the credential is a
|
|||
|
* {@link firebase.auth.PhoneAuthProvider#credential} and the verification
|
|||
|
* ID of the credential is not valid.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @param {!firebase.auth.AuthCredential} credential
|
|||
|
* @return {!firebase.Promise<firebase.auth.UserCredential>}
|
|||
|
*/
|
|||
|
firebase.User.prototype.reauthenticateWithCredential = function(credential) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Re-authenticates a user using a fresh credential, and returns any available
|
|||
|
* additional user information, such as user name. Use before operations
|
|||
|
* such as {@link firebase.User#updatePassword} that require tokens from recent
|
|||
|
* sign-in attempts.
|
|||
|
*
|
|||
|
* This method is deprecated. Use
|
|||
|
* {@link firebase.User#reauthenticateWithCredential} instead.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/user-mismatch</dt>
|
|||
|
* <dd>Thrown if the credential given does not correspond to the user.</dd>
|
|||
|
* <dt>auth/user-not-found</dt>
|
|||
|
* <dd>Thrown if the credential given does not correspond to any existing user.
|
|||
|
* </dd>
|
|||
|
* <dt>auth/invalid-credential</dt>
|
|||
|
* <dd>Thrown if the provider's credential is not valid. This can happen if it
|
|||
|
* has already expired when calling link, or if it used invalid token(s).
|
|||
|
* See the Firebase documentation for your provider, and make sure you pass
|
|||
|
* in the correct parameters to the credential method.</dd>
|
|||
|
* <dt>auth/invalid-email</dt>
|
|||
|
* <dd>Thrown if the email used in a
|
|||
|
* {@link firebase.auth.EmailAuthProvider#credential} is invalid.</dd>
|
|||
|
* <dt>auth/wrong-password</dt>
|
|||
|
* <dd>Thrown if the password used in a
|
|||
|
* {@link firebase.auth.EmailAuthProvider#credential} is not correct or when
|
|||
|
* the user associated with the email does not have a password.</dd>
|
|||
|
* <dt>auth/invalid-verification-code</dt>
|
|||
|
* <dd>Thrown if the credential is a
|
|||
|
* {@link firebase.auth.PhoneAuthProvider#credential} and the verification
|
|||
|
* code of the credential is not valid.</dd>
|
|||
|
* <dt>auth/invalid-verification-id</dt>
|
|||
|
* <dd>Thrown if the credential is a
|
|||
|
* {@link firebase.auth.PhoneAuthProvider#credential} and the verification
|
|||
|
* ID of the credential is not valid.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @param {!firebase.auth.AuthCredential} credential
|
|||
|
* @return {!firebase.Promise<!firebase.auth.UserCredential>}
|
|||
|
*/
|
|||
|
firebase.User.prototype.reauthenticateAndRetrieveDataWithCredential = function(
|
|||
|
credential
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Re-authenticates a user using a fresh credential. Use before operations
|
|||
|
* such as {@link firebase.User#updatePassword} that require tokens from recent
|
|||
|
* sign-in attempts.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/user-mismatch</dt>
|
|||
|
* <dd>Thrown if the credential given does not correspond to the user.</dd>
|
|||
|
* <dt>auth/user-not-found</dt>
|
|||
|
* <dd>Thrown if the credential given does not correspond to any existing user.
|
|||
|
* </dd>
|
|||
|
* <dt>auth/captcha-check-failed</dt>
|
|||
|
* <dd>Thrown if the reCAPTCHA response token was invalid, expired, or if
|
|||
|
* this method was called from a non-whitelisted domain.</dd>
|
|||
|
* <dt>auth/invalid-phone-number</dt>
|
|||
|
* <dd>Thrown if the phone number has an invalid format.</dd>
|
|||
|
* <dt>auth/missing-phone-number</dt>
|
|||
|
* <dd>Thrown if the phone number is missing.</dd>
|
|||
|
* <dt>auth/quota-exceeded</dt>
|
|||
|
* <dd>Thrown if the SMS quota for the Firebase project has been exceeded.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @param {string} phoneNumber The user's phone number in E.164 format (e.g.
|
|||
|
* +16505550101).
|
|||
|
* @param {!firebase.auth.ApplicationVerifier} applicationVerifier
|
|||
|
* @return {!firebase.Promise<!firebase.auth.ConfirmationResult>}
|
|||
|
*/
|
|||
|
firebase.User.prototype.reauthenticateWithPhoneNumber = function(
|
|||
|
phoneNumber,
|
|||
|
applicationVerifier
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Updates the user's email address.
|
|||
|
*
|
|||
|
* An email will be sent to the original email address (if it was set) that
|
|||
|
* allows to revoke the email address change, in order to protect them from
|
|||
|
* account hijacking.
|
|||
|
*
|
|||
|
* <b>Important:</b> this is a security sensitive operation that requires the
|
|||
|
* user to have recently signed in. If this requirement isn't met, ask the user
|
|||
|
* to authenticate again and then call
|
|||
|
* {@link firebase.User#reauthenticateWithCredential}.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/invalid-email</dt>
|
|||
|
* <dd>Thrown if the email used is invalid.</dd>
|
|||
|
* <dt>auth/email-already-in-use</dt>
|
|||
|
* <dd>Thrown if the email is already used by another user.</dd>
|
|||
|
* <dt>auth/requires-recent-login</dt>
|
|||
|
* <dd>Thrown if the user's last sign-in time does not meet the security
|
|||
|
* threshold. Use {@link firebase.User#reauthenticateWithCredential} to
|
|||
|
* resolve. This does not apply if the user is anonymous.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @param {string} newEmail The new email address.
|
|||
|
* @return {!firebase.Promise<void>}
|
|||
|
*/
|
|||
|
firebase.User.prototype.updateEmail = function(newEmail) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Updates the user's password.
|
|||
|
*
|
|||
|
* <b>Important:</b> this is a security sensitive operation that requires the
|
|||
|
* user to have recently signed in. If this requirement isn't met, ask the user
|
|||
|
* to authenticate again and then call
|
|||
|
* {@link firebase.User#reauthenticateWithCredential}.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/weak-password</dt>
|
|||
|
* <dd>Thrown if the password is not strong enough.</dd>
|
|||
|
* <dt>auth/requires-recent-login</dt>
|
|||
|
* <dd>Thrown if the user's last sign-in time does not meet the security
|
|||
|
* threshold. Use {@link firebase.User#reauthenticateWithCredential} to
|
|||
|
* resolve. This does not apply if the user is anonymous.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @param {string} newPassword
|
|||
|
* @return {!firebase.Promise<void>}
|
|||
|
*/
|
|||
|
firebase.User.prototype.updatePassword = function(newPassword) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Updates the user's phone number.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/invalid-verification-code</dt>
|
|||
|
* <dd>Thrown if the verification code of the credential is not valid.</dd>
|
|||
|
* <dt>auth/invalid-verification-id</dt>
|
|||
|
* <dd>Thrown if the verification ID of the credential is not valid.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @param {!firebase.auth.AuthCredential} phoneCredential
|
|||
|
* @return {!firebase.Promise<void>}
|
|||
|
*/
|
|||
|
firebase.User.prototype.updatePhoneNumber = function(phoneCredential) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Updates a user's profile data.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* // Updates the user attributes:
|
|||
|
* user.updateProfile({
|
|||
|
* displayName: "Jane Q. User",
|
|||
|
* photoURL: "https://example.com/jane-q-user/profile.jpg"
|
|||
|
* }).then(function() {
|
|||
|
* // Profile updated successfully!
|
|||
|
* // "Jane Q. User"
|
|||
|
* var displayName = user.displayName;
|
|||
|
* // "https://example.com/jane-q-user/profile.jpg"
|
|||
|
* var photoURL = user.photoURL;
|
|||
|
* }, function(error) {
|
|||
|
* // An error happened.
|
|||
|
* });
|
|||
|
*
|
|||
|
* // Passing a null value will delete the current attribute's value, but not
|
|||
|
* // passing a property won't change the current attribute's value:
|
|||
|
* // Let's say we're using the same user than before, after the update.
|
|||
|
* user.updateProfile({photoURL: null}).then(function() {
|
|||
|
* // Profile updated successfully!
|
|||
|
* // "Jane Q. User", hasn't changed.
|
|||
|
* var displayName = user.displayName;
|
|||
|
* // Now, this is null.
|
|||
|
* var photoURL = user.photoURL;
|
|||
|
* }, function(error) {
|
|||
|
* // An error happened.
|
|||
|
* });
|
|||
|
*
|
|||
|
* @param {!{displayName: ?string, photoURL: ?string}} profile The profile's
|
|||
|
* displayName and photoURL to update.
|
|||
|
* @return {!firebase.Promise<void>}
|
|||
|
*/
|
|||
|
firebase.User.prototype.updateProfile = function(profile) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Sends a verification email to a new email address. The user's email will be
|
|||
|
* updated to the new one after being verified.
|
|||
|
*
|
|||
|
* If you have a custom email action handler, you can complete the verification
|
|||
|
* process by calling {@link firebase.auth.Auth.applyActionCode}.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/missing-android-pkg-name</dt>
|
|||
|
* <dd>An Android package name must be provided if the Android app is required
|
|||
|
* to be installed.</dd>
|
|||
|
* <dt>auth/missing-continue-uri</dt>
|
|||
|
* <dd>A continue URL must be provided in the request.</dd>
|
|||
|
* <dt>auth/missing-ios-bundle-id</dt>
|
|||
|
* <dd>An iOS bundle ID must be provided if an App Store ID is provided.</dd>
|
|||
|
* <dt>auth/invalid-continue-uri</dt>
|
|||
|
* <dd>The continue URL provided in the request is invalid.</dd>
|
|||
|
* <dt>auth/unauthorized-continue-uri</dt>
|
|||
|
* <dd>The domain of the continue URL is not whitelisted. Whitelist
|
|||
|
* the domain in the Firebase console.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @example
|
|||
|
* ```javascript
|
|||
|
* var actionCodeSettings = {
|
|||
|
* url: 'https://www.example.com/cart?email=user@example.com&cartId=123',
|
|||
|
* iOS: {
|
|||
|
* bundleId: 'com.example.ios'
|
|||
|
* },
|
|||
|
* android: {
|
|||
|
* packageName: 'com.example.android',
|
|||
|
* installApp: true,
|
|||
|
* minimumVersion: '12'
|
|||
|
* },
|
|||
|
* handleCodeInApp: true
|
|||
|
* };
|
|||
|
* firebase.auth().currentUser.verifyBeforeUpdateEmail(
|
|||
|
* 'user@example.com', actionCodeSettings)
|
|||
|
* .then(function() {
|
|||
|
* // Verification email sent.
|
|||
|
* })
|
|||
|
* .catch(function(error) {
|
|||
|
* // Error occurred. Inspect error.code.
|
|||
|
* });
|
|||
|
* ```
|
|||
|
*
|
|||
|
* @param {string} newEmail The email address to be verified and updated to.
|
|||
|
* @param {?firebase.auth.ActionCodeSettings=} actionCodeSettings The action
|
|||
|
* code settings. If specified, the state/continue URL will be set as the
|
|||
|
* "continueUrl" parameter in the email verification link. The default email
|
|||
|
* verification landing page will use this to display a link to go back to
|
|||
|
* the app if it is installed.
|
|||
|
* If the actionCodeSettings is not specified, no URL is appended to the
|
|||
|
* action URL.
|
|||
|
* The state URL provided must belong to a domain that is whitelisted by the
|
|||
|
* developer in the console. Otherwise an error will be thrown.
|
|||
|
* Mobile app redirects will only be applicable if the developer configures
|
|||
|
* and accepts the Firebase Dynamic Links terms of condition.
|
|||
|
* The Android package name and iOS bundle ID will be respected only if they
|
|||
|
* are configured in the same Firebase Auth project used.
|
|||
|
* @return {!firebase.Promise<void>}
|
|||
|
*/
|
|||
|
firebase.User.prototype.verifyBeforeUpdateEmail = function(
|
|||
|
newEmail,
|
|||
|
actionCodeSettings
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Deletes and signs out the user.
|
|||
|
*
|
|||
|
* <b>Important:</b> this is a security sensitive operation that requires the
|
|||
|
* user to have recently signed in. If this requirement isn't met, ask the user
|
|||
|
* to authenticate again and then call
|
|||
|
* {@link firebase.User#reauthenticateWithCredential}.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/requires-recent-login</dt>
|
|||
|
* <dd>Thrown if the user's last sign-in time does not meet the security
|
|||
|
* threshold. Use {@link firebase.User#reauthenticateWithCredential} to
|
|||
|
* resolve. This does not apply if the user is anonymous.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @return {!firebase.Promise<void>}
|
|||
|
*/
|
|||
|
firebase.User.prototype.delete = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* Returns a JSON-serializable representation of this object.
|
|||
|
*
|
|||
|
* @return {!Object} A JSON-serializable representation of this object.
|
|||
|
*/
|
|||
|
firebase.User.prototype.toJSON = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* The Firebase Auth service interface.
|
|||
|
*
|
|||
|
* Do not call this constructor directly. Instead, use
|
|||
|
* {@link firebase.auth `firebase.auth()`}.
|
|||
|
*
|
|||
|
* See
|
|||
|
* {@link https://firebase.google.com/docs/auth/ Firebase Authentication}
|
|||
|
* for a full guide on how to use the Firebase Auth service.
|
|||
|
*
|
|||
|
* @interface
|
|||
|
*/
|
|||
|
firebase.auth.Auth = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* Checks a password reset code sent to the user by email or other out-of-band
|
|||
|
* mechanism.
|
|||
|
*
|
|||
|
* Returns the user's email address if valid.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/expired-action-code</dt>
|
|||
|
* <dd>Thrown if the password reset code has expired.</dd>
|
|||
|
* <dt>auth/invalid-action-code</dt>
|
|||
|
* <dd>Thrown if the password reset code is invalid. This can happen if the code
|
|||
|
* is malformed or has already been used.</dd>
|
|||
|
* <dt>auth/user-disabled</dt>
|
|||
|
* <dd>Thrown if the user corresponding to the given password reset code has
|
|||
|
* been disabled.</dd>
|
|||
|
* <dt>auth/user-not-found</dt>
|
|||
|
* <dd>Thrown if there is no user corresponding to the password reset code. This
|
|||
|
* may have happened if the user was deleted between when the code was
|
|||
|
* issued and when this method was called.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @param {string} code A verification code sent to the user.
|
|||
|
* @return {!firebase.Promise<string>}
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.verifyPasswordResetCode = function(code) {};
|
|||
|
|
|||
|
/**
|
|||
|
* A response from {@link firebase.auth.Auth#checkActionCode}.
|
|||
|
*
|
|||
|
* @interface
|
|||
|
*/
|
|||
|
firebase.auth.ActionCodeInfo = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* The data associated with the action code.
|
|||
|
*
|
|||
|
* For the `PASSWORD_RESET`, `VERIFY_EMAIL`, and `RECOVER_EMAIL` actions, this
|
|||
|
* object contains an `email` field with the address the email was sent to.
|
|||
|
*
|
|||
|
* For the RECOVER_EMAIL action, which allows a user to undo an email address
|
|||
|
* change, this object also contains a `previousEmail` field with the user
|
|||
|
* account's current email address. After the action completes, the user's
|
|||
|
* email address will revert to the value in the `email` field from the value
|
|||
|
* in `previousEmail` field.
|
|||
|
*
|
|||
|
* For the VERIFY_AND_CHANGE_EMAIL action, which allows a user to verify the
|
|||
|
* email before updating it, this object contains a `previousEmail` field with
|
|||
|
* the user account's email address before updating. After the action completes,
|
|||
|
* the user's email address will be updated to the value in the `email` field
|
|||
|
* from the value in `previousEmail` field.
|
|||
|
*
|
|||
|
* For the REVERT_SECOND_FACTOR_ADDITION action, which allows a user to unenroll
|
|||
|
* a newly added second factor, this object contains a `multiFactorInfo` field
|
|||
|
* with the information about the second factor. For phone second factor, the
|
|||
|
* `multiFactorInfo` is a {@link firebase.auth.Auth.PhoneMultiFactorInfo}
|
|||
|
* object, which contains the phone number.
|
|||
|
*
|
|||
|
* @typedef {{
|
|||
|
* email: (?string|undefined),
|
|||
|
* fromEmail: (?string|undefined),
|
|||
|
* multiFactorInfo: (?firebase.auth.MultiFactorInfo|undefined),
|
|||
|
previousEmail: (?string|undefined)
|
|||
|
* }}
|
|||
|
*/
|
|||
|
firebase.auth.ActionCodeInfo.prototype.data;
|
|||
|
|
|||
|
/**
|
|||
|
* The type of operation that generated the action code. This could be:
|
|||
|
* <ul>
|
|||
|
* <li>`EMAIL_SIGNIN`: email sign in code generated via
|
|||
|
* {@link firebase.auth.Auth.sendSignInLinkToEmail}.</li>
|
|||
|
* <li>`PASSWORD_RESET`: password reset code generated via
|
|||
|
* {@link firebase.auth.Auth.sendPasswordResetEmail}.</li>
|
|||
|
* <li>`RECOVER_EMAIL`: email change revocation code generated via
|
|||
|
* {@link firebase.User.updateEmail}.</li>
|
|||
|
* <li>`REVERT_SECOND_FACTOR_ADDITION`: revert second factor addition
|
|||
|
* code generated via
|
|||
|
* {@link firebase.User.MultiFactorUser.enroll}.</li>
|
|||
|
* <li>`VERIFY_AND_CHANGE_EMAIL`: verify and change email code generated
|
|||
|
* via {@link firebase.User.verifyBeforeUpdateEmail}.</li>
|
|||
|
* <li>`VERIFY_EMAIL`: email verification code generated via
|
|||
|
* {@link firebase.User.sendEmailVerification}.</li>
|
|||
|
* </ul>
|
|||
|
*
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.ActionCodeInfo.prototype.operation;
|
|||
|
|
|||
|
/**
|
|||
|
* @enum {string}
|
|||
|
* An enumeration of the possible email action types.
|
|||
|
*/
|
|||
|
firebase.auth.ActionCodeInfo.Operation = {
|
|||
|
/**
|
|||
|
* The email link sign in email action.
|
|||
|
*/
|
|||
|
EMAIL_SIGNIN: 'EMAIL_SIGNIN',
|
|||
|
/**
|
|||
|
* The reset password email action.
|
|||
|
*/
|
|||
|
PASSWORD_RESET: 'PASSWORD_RESET',
|
|||
|
/**
|
|||
|
* The email revocation action.
|
|||
|
*/
|
|||
|
RECOVER_EMAIL: 'RECOVER_EMAIL',
|
|||
|
/**
|
|||
|
* The revert second factor addition email action.
|
|||
|
*/
|
|||
|
REVERT_SECOND_FACTOR_ADDITION: 'REVERT_SECOND_FACTOR_ADDITION',
|
|||
|
/**
|
|||
|
* The verify and update email action.
|
|||
|
*/
|
|||
|
VERIFY_AND_CHANGE_EMAIL: 'VERIFY_AND_CHANGE_EMAIL',
|
|||
|
/**
|
|||
|
* The email verification action.
|
|||
|
*/
|
|||
|
VERIFY_EMAIL: 'VERIFY_EMAIL'
|
|||
|
};
|
|||
|
|
|||
|
/**
|
|||
|
* A utility class to parse email action URLs.
|
|||
|
*
|
|||
|
* @constructor
|
|||
|
*/
|
|||
|
firebase.auth.ActionCodeURL = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* The API key of the email action link.
|
|||
|
*
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.ActionCodeURL.prototype.apiKey;
|
|||
|
|
|||
|
/**
|
|||
|
* The action code of the email action link.
|
|||
|
*
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.ActionCodeURL.prototype.code;
|
|||
|
|
|||
|
/**
|
|||
|
* The continue URL of the email action link. Null if not provided.
|
|||
|
*
|
|||
|
* @type {?string}
|
|||
|
*/
|
|||
|
firebase.auth.ActionCodeURL.prototype.continueUrl;
|
|||
|
|
|||
|
/**
|
|||
|
* The language code of the email action link. Null if not provided.
|
|||
|
*
|
|||
|
* @type {?string}
|
|||
|
*/
|
|||
|
firebase.auth.ActionCodeURL.prototype.languageCode;
|
|||
|
|
|||
|
/**
|
|||
|
* The action performed by the email action link. It returns from one
|
|||
|
* of the types from {@link firebase.auth.ActionCodeInfo}.
|
|||
|
*
|
|||
|
* @type {!firebase.auth.ActionCodeInfo.Operation}
|
|||
|
*/
|
|||
|
firebase.auth.ActionCodeURL.prototype.operation;
|
|||
|
|
|||
|
/**
|
|||
|
* The tenant ID of the email action link. Null if the email action
|
|||
|
* is from the parent project.
|
|||
|
*
|
|||
|
* @type {?string}
|
|||
|
*/
|
|||
|
firebase.auth.ActionCodeURL.prototype.tenantId;
|
|||
|
|
|||
|
/**
|
|||
|
* Parses the email action link string and returns an ActionCodeURL object
|
|||
|
* if the link is valid, otherwise returns null.
|
|||
|
*
|
|||
|
* @param {string} link The email action link string.
|
|||
|
* @return {?firebase.auth.ActionCodeURL} The ActionCodeURL object, or null if
|
|||
|
* the link is invalid.
|
|||
|
*/
|
|||
|
firebase.auth.ActionCodeURL.parseLink = function(link) {};
|
|||
|
|
|||
|
/**
|
|||
|
* This is the interface that defines the required continue/state URL with
|
|||
|
* optional Android and iOS bundle identifiers.
|
|||
|
* The action code setting fields are:
|
|||
|
* <ul>
|
|||
|
* <li><p>url: Sets the link continue/state URL, which has different meanings
|
|||
|
* in different contexts:</p>
|
|||
|
* <ul>
|
|||
|
* <li>When the link is handled in the web action widgets, this is the deep
|
|||
|
* link in the continueUrl query parameter.</li>
|
|||
|
* <li>When the link is handled in the app directly, this is the continueUrl
|
|||
|
* query parameter in the deep link of the Dynamic Link.</li>
|
|||
|
* </ul>
|
|||
|
* </li>
|
|||
|
* <li>iOS: Sets the iOS bundle ID. This will try to open the link in an iOS app
|
|||
|
* if it is installed.</li>
|
|||
|
* <li>android: Sets the Android package name. This will try to open the link in
|
|||
|
* an android app if it is installed. If installApp is passed, it specifies
|
|||
|
* whether to install the Android app if the device supports it and the app
|
|||
|
* is not already installed. If this field is provided without a
|
|||
|
* packageName, an error is thrown explaining that the packageName must be
|
|||
|
* provided in conjunction with this field.
|
|||
|
* If minimumVersion is specified, and an older version of the app is
|
|||
|
* installed, the user is taken to the Play Store to upgrade the app.</li>
|
|||
|
* <li>handleCodeInApp: The default is false. When set to true, the action code
|
|||
|
* link will be be sent as a Universal Link or Android App Link and will be
|
|||
|
* opened by the app if installed. In the false case, the code will be sent
|
|||
|
* to the web widget first and then on continue will redirect to the app if
|
|||
|
* installed.</li>
|
|||
|
* </ul>
|
|||
|
*
|
|||
|
* @typedef {{
|
|||
|
* url: string,
|
|||
|
* iOS: ({bundleId: string}|undefined),
|
|||
|
* android: ({packageName: string, installApp: (boolean|undefined),
|
|||
|
* minimumVersion: (string|undefined)}|undefined),
|
|||
|
* handleCodeInApp: (boolean|undefined)
|
|||
|
* }}
|
|||
|
*/
|
|||
|
firebase.auth.ActionCodeSettings;
|
|||
|
|
|||
|
/**
|
|||
|
* Checks a verification code sent to the user by email or other out-of-band
|
|||
|
* mechanism.
|
|||
|
*
|
|||
|
* Returns metadata about the code.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/expired-action-code</dt>
|
|||
|
* <dd>Thrown if the action code has expired.</dd>
|
|||
|
* <dt>auth/invalid-action-code</dt>
|
|||
|
* <dd>Thrown if the action code is invalid. This can happen if the code is
|
|||
|
* malformed or has already been used.</dd>
|
|||
|
* <dt>auth/user-disabled</dt>
|
|||
|
* <dd>Thrown if the user corresponding to the given action code has been
|
|||
|
* disabled.</dd>
|
|||
|
* <dt>auth/user-not-found</dt>
|
|||
|
* <dd>Thrown if there is no user corresponding to the action code. This may
|
|||
|
* have happened if the user was deleted between when the action code was
|
|||
|
* issued and when this method was called.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @param {string} code A verification code sent to the user.
|
|||
|
* @return {!firebase.Promise<!firebase.auth.ActionCodeInfo>}
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.checkActionCode = function(code) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Applies a verification code sent to the user by email or other out-of-band
|
|||
|
* mechanism.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/expired-action-code</dt>
|
|||
|
* <dd>Thrown if the action code has expired.</dd>
|
|||
|
* <dt>auth/invalid-action-code</dt>
|
|||
|
* <dd>Thrown if the action code is invalid. This can happen if the code is
|
|||
|
* malformed or has already been used.</dd>
|
|||
|
* <dt>auth/user-disabled</dt>
|
|||
|
* <dd>Thrown if the user corresponding to the given action code has been
|
|||
|
* disabled.</dd>
|
|||
|
* <dt>auth/user-not-found</dt>
|
|||
|
* <dd>Thrown if there is no user corresponding to the action code. This may
|
|||
|
* have happened if the user was deleted between when the action code was
|
|||
|
* issued and when this method was called.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @param {string} code A verification code sent to the user.
|
|||
|
* @return {!firebase.Promise<void>}
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.applyActionCode = function(code) {};
|
|||
|
|
|||
|
/**
|
|||
|
* The {@link firebase.app.App app} associated with the `Auth` service
|
|||
|
* instance.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* var app = auth.app;
|
|||
|
*
|
|||
|
* @type {!firebase.app.App}
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.app;
|
|||
|
|
|||
|
/**
|
|||
|
* The currently signed-in user (or null).
|
|||
|
*
|
|||
|
* @type {firebase.User|null}
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.currentUser;
|
|||
|
|
|||
|
/**
|
|||
|
* The current Auth instance's tenant ID. This is a readable/writable
|
|||
|
* property. When you set the tenant ID of an Auth instance, all future
|
|||
|
* sign-in/sign-up operations will pass this tenant ID and sign in or
|
|||
|
* sign up users to the specified tenant project.
|
|||
|
* When set to null, users are signed in to the parent project. By default,
|
|||
|
* this is set to null.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* ```javascript
|
|||
|
* // Set the tenant ID on Auth instance.
|
|||
|
* firebase.auth().tenantId = ‘TENANT_PROJECT_ID’;
|
|||
|
*
|
|||
|
* // All future sign-in request now include tenant ID.
|
|||
|
* firebase.auth().signInWithEmailAndPassword(email, password)
|
|||
|
* .then(function(result) {
|
|||
|
* // result.user.tenantId should be ‘TENANT_PROJECT_ID’.
|
|||
|
* }).catch(function(error) {
|
|||
|
* // Handle error.
|
|||
|
* });
|
|||
|
* ```
|
|||
|
*
|
|||
|
* @type {?string}
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.tenantId;
|
|||
|
|
|||
|
/**
|
|||
|
* @enum {string}
|
|||
|
* An enumeration of the possible persistence mechanism types.
|
|||
|
*/
|
|||
|
firebase.auth.Auth.Persistence = {
|
|||
|
/**
|
|||
|
* Indicates that the state will be persisted even when the browser window is
|
|||
|
* closed or the activity is destroyed in react-native.
|
|||
|
*/
|
|||
|
LOCAL: 'local',
|
|||
|
/**
|
|||
|
* Indicates that the state will only be stored in memory and will be cleared
|
|||
|
* when the window or activity is refreshed.
|
|||
|
*/
|
|||
|
NONE: 'none',
|
|||
|
/**
|
|||
|
* Indicates that the state will only persist in current session/tab, relevant
|
|||
|
* to web only, and will be cleared when the tab is closed.
|
|||
|
*/
|
|||
|
SESSION: 'session'
|
|||
|
};
|
|||
|
|
|||
|
/**
|
|||
|
* Changes the current type of persistence on the current Auth instance for the
|
|||
|
* currently saved Auth session and applies this type of persistence for
|
|||
|
* future sign-in requests, including sign-in with redirect requests. This will
|
|||
|
* return a promise that will resolve once the state finishes copying from one
|
|||
|
* type of storage to the other.
|
|||
|
* Calling a sign-in method after changing persistence will wait for that
|
|||
|
* persistence change to complete before applying it on the new Auth state.
|
|||
|
*
|
|||
|
* This makes it easy for a user signing in to specify whether their session
|
|||
|
* should be remembered or not. It also makes it easier to never persist the
|
|||
|
* Auth state for applications that are shared by other users or have sensitive
|
|||
|
* data.
|
|||
|
*
|
|||
|
* The default for web browser apps and React Native apps is 'local' (provided
|
|||
|
* the browser supports this mechanism) whereas it is 'none' for Node.js backend
|
|||
|
* apps.
|
|||
|
*
|
|||
|
* <h4>Error Codes (thrown synchronously)</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/invalid-persistence-type</dt>
|
|||
|
* <dd>Thrown if the specified persistence type is invalid.</dd>
|
|||
|
* <dt>auth/unsupported-persistence-type</dt>
|
|||
|
* <dd>Thrown if the current environment does not support the specified
|
|||
|
* persistence type.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @example
|
|||
|
* firebase.auth().setPersistence(firebase.auth.Auth.Persistence.SESSION)
|
|||
|
* .then(function() {
|
|||
|
* // Existing and future Auth states are now persisted in the current
|
|||
|
* // session only. Closing the window would clear any existing state even if
|
|||
|
* // a user forgets to sign out.
|
|||
|
* });
|
|||
|
*
|
|||
|
* @param {!firebase.auth.Auth.Persistence} persistence The auth state
|
|||
|
* persistence mechanism.
|
|||
|
* @return {!firebase.Promise<void>}
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.setPersistence = function(persistence) {};
|
|||
|
|
|||
|
/**
|
|||
|
* The current Auth instance's language code. This is a readable/writable
|
|||
|
* property. When set to null, the default Firebase Console language setting
|
|||
|
* is applied. The language code will propagate to email action templates
|
|||
|
* (password reset, email verification and email change revocation), SMS
|
|||
|
* templates for phone authentication, reCAPTCHA verifier and OAuth
|
|||
|
* popup/redirect operations provided the specified providers support
|
|||
|
* localization with the language code specified.
|
|||
|
*
|
|||
|
* @type {?string}
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.languageCode;
|
|||
|
|
|||
|
/**
|
|||
|
* Sets the current language to the default device/browser preference.
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.useDeviceLanguage = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* The current Auth instance's settings. This is used to edit/read configuration
|
|||
|
* related options like app verification mode for phone authentication.
|
|||
|
*
|
|||
|
* @type {!firebase.auth.AuthSettings}
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.settings;
|
|||
|
|
|||
|
/**
|
|||
|
* Creates a new user account associated with the specified email address and
|
|||
|
* password.
|
|||
|
*
|
|||
|
* On successful creation of the user account, this user will also be
|
|||
|
* signed in to your application.
|
|||
|
*
|
|||
|
* User account creation can fail if the account already exists or the password
|
|||
|
* is invalid.
|
|||
|
*
|
|||
|
* Note: The email address acts as a unique identifier for the user and
|
|||
|
* enables an email-based password reset. This function will create
|
|||
|
* a new user account and set the initial user password.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/email-already-in-use</dt>
|
|||
|
* <dd>Thrown if there already exists an account with the given email
|
|||
|
* address.</dd>
|
|||
|
* <dt>auth/invalid-email</dt>
|
|||
|
* <dd>Thrown if the email address is not valid.</dd>
|
|||
|
* <dt>auth/operation-not-allowed</dt>
|
|||
|
* <dd>Thrown if email/password accounts are not enabled. Enable email/password
|
|||
|
* accounts in the Firebase Console, under the Auth tab.</dd>
|
|||
|
* <dt>auth/weak-password</dt>
|
|||
|
* <dd>Thrown if the password is not strong enough.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @example
|
|||
|
* firebase.auth().createUserWithEmailAndPassword(email, password)
|
|||
|
* .catch(function(error) {
|
|||
|
* // Handle Errors here.
|
|||
|
* var errorCode = error.code;
|
|||
|
* var errorMessage = error.message;
|
|||
|
* if (errorCode == 'auth/weak-password') {
|
|||
|
* alert('The password is too weak.');
|
|||
|
* } else {
|
|||
|
* alert(errorMessage);
|
|||
|
* }
|
|||
|
* console.log(error);
|
|||
|
* });
|
|||
|
*
|
|||
|
* @param {string} email The user's email address.
|
|||
|
* @param {string} password The user's chosen password.
|
|||
|
* @return {!firebase.Promise<!firebase.auth.UserCredential>}
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.createUserWithEmailAndPassword = function(
|
|||
|
email,
|
|||
|
password
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Gets the list of possible sign in methods for the given email address. This
|
|||
|
* is useful to differentiate methods of sign-in for the same provider,
|
|||
|
* eg. `EmailAuthProvider` which has 2 methods of sign-in, email/password and
|
|||
|
* email/link.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/invalid-email</dt>
|
|||
|
* <dd>Thrown if the email address is not valid.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @param {string} email An email address.
|
|||
|
* @return {!firebase.Promise<!Array<string>>}
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.fetchSignInMethodsForEmail = function(email) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Checks if an incoming link is a sign-in with email link.
|
|||
|
*
|
|||
|
* @param {string} emailLink Sign-in email link.
|
|||
|
* @return {boolean} Whether the link is a sign-in with email link.
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.isSignInWithEmailLink = function(emailLink) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Adds an observer for changes to the user's sign-in state.
|
|||
|
*
|
|||
|
* Prior to 4.0.0, this triggered the observer when users were signed in,
|
|||
|
* signed out, or when the user's ID token changed in situations such as token
|
|||
|
* expiry or password change. After 4.0.0, the observer is only triggered
|
|||
|
* on sign-in or sign-out.
|
|||
|
*
|
|||
|
* To keep the old behavior, see {@link firebase.auth.Auth#onIdTokenChanged}.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* firebase.auth().onAuthStateChanged(function(user) {
|
|||
|
* if (user) {
|
|||
|
* // User is signed in.
|
|||
|
* }
|
|||
|
* });
|
|||
|
*
|
|||
|
* @param {!firebase.Observer<firebase.User, firebase.auth.Error>|function(?firebase.User)}
|
|||
|
* nextOrObserver An observer object or a function triggered on change.
|
|||
|
* @param {function(!firebase.auth.Error)=} error Optional A function
|
|||
|
* triggered on auth error.
|
|||
|
* @param {firebase.CompleteFn=} completed Optional A function triggered when the
|
|||
|
* observer is removed.
|
|||
|
* @return {!firebase.Unsubscribe} The unsubscribe function for the observer.
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.onAuthStateChanged = function(
|
|||
|
nextOrObserver,
|
|||
|
error,
|
|||
|
completed
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Adds an observer for changes to the signed-in user's ID token, which includes
|
|||
|
* sign-in, sign-out, and token refresh events. This method has the same
|
|||
|
* behavior as {@link firebase.auth.Auth#onAuthStateChanged} had prior to 4.0.0.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* firebase.auth().onIdTokenChanged(function(user) {
|
|||
|
* if (user) {
|
|||
|
* // User is signed in or token was refreshed.
|
|||
|
* }
|
|||
|
* });
|
|||
|
*
|
|||
|
* @param {!firebase.Observer<firebase.User, firebase.auth.Error>|function(?firebase.User)}
|
|||
|
* nextOrObserver An observer object or a function triggered on change.
|
|||
|
* @param {function(!firebase.auth.Error)=} error Optional A function
|
|||
|
* triggered on auth error.
|
|||
|
* @param {firebase.CompleteFn=} completed Optional A function triggered when the
|
|||
|
* observer is removed.
|
|||
|
* @return {!firebase.Unsubscribe} The unsubscribe function for the observer.
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.onIdTokenChanged = function(
|
|||
|
nextOrObserver,
|
|||
|
error,
|
|||
|
completed
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Sends a sign-in email link to the user with the specified email.
|
|||
|
*
|
|||
|
* The sign-in operation has to always be completed in the app unlike other out
|
|||
|
* of band email actions (password reset and email verifications). This is
|
|||
|
* because, at the end of the flow, the user is expected to be signed in and
|
|||
|
* their Auth state persisted within the app.
|
|||
|
*
|
|||
|
* To complete sign in with the email link, call
|
|||
|
* {@link firebase.auth.Auth#signInWithEmailLink} with the email address and
|
|||
|
* the email link supplied in the email sent to the user.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/argument-error</dt>
|
|||
|
* <dd>Thrown if handleCodeInApp is false.</dd>
|
|||
|
* <dt>auth/invalid-email</dt>
|
|||
|
* <dd>Thrown if the email address is not valid.</dd>
|
|||
|
* <dt>auth/missing-android-pkg-name</dt>
|
|||
|
* <dd>An Android package name must be provided if the Android app is required
|
|||
|
* to be installed.</dd>
|
|||
|
* <dt>auth/missing-continue-uri</dt>
|
|||
|
* <dd>A continue URL must be provided in the request.</dd>
|
|||
|
* <dt>auth/missing-ios-bundle-id</dt>
|
|||
|
* <dd>An iOS Bundle ID must be provided if an App Store ID is provided.</dd>
|
|||
|
* <dt>auth/invalid-continue-uri</dt>
|
|||
|
* <dd>The continue URL provided in the request is invalid.</dd>
|
|||
|
* <dt>auth/unauthorized-continue-uri</dt>
|
|||
|
* <dd>The domain of the continue URL is not whitelisted. Whitelist
|
|||
|
* the domain in the Firebase console.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @example
|
|||
|
* var actionCodeSettings = {
|
|||
|
* // The URL to redirect to for sign-in completion. This is also the deep
|
|||
|
* // link for mobile redirects. The domain (www.example.com) for this URL
|
|||
|
* // must be whitelisted in the Firebase Console.
|
|||
|
* url: 'https://www.example.com/finishSignUp?cartId=1234',
|
|||
|
* iOS: {
|
|||
|
* bundleId: 'com.example.ios'
|
|||
|
* },
|
|||
|
* android: {
|
|||
|
* packageName: 'com.example.android',
|
|||
|
* installApp: true,
|
|||
|
* minimumVersion: '12'
|
|||
|
* },
|
|||
|
* // This must be true.
|
|||
|
* handleCodeInApp: true
|
|||
|
* };
|
|||
|
* firebase.auth().sendSignInLinkToEmail('user@example.com', actionCodeSettings)
|
|||
|
* .then(function() {
|
|||
|
* // The link was successfully sent. Inform the user. Save the email
|
|||
|
* // locally so you don't need to ask the user for it again if they open
|
|||
|
* // the link on the same device.
|
|||
|
* })
|
|||
|
* .catch(function(error) {
|
|||
|
* // Some error occurred, you can inspect the code: error.code
|
|||
|
* });
|
|||
|
*
|
|||
|
* @param {string} email The email account to sign in with.
|
|||
|
* @param {!firebase.auth.ActionCodeSettings} actionCodeSettings The action
|
|||
|
* code settings. The action code settings which provides Firebase with
|
|||
|
* instructions on how to construct the email link. This includes the
|
|||
|
* sign in completion URL or the deep link for mobile redirects, the mobile
|
|||
|
* apps to use when the sign-in link is opened on an Android or iOS device.
|
|||
|
* Mobile app redirects will only be applicable if the developer configures
|
|||
|
* and accepts the Firebase Dynamic Links terms of condition.
|
|||
|
* The Android package name and iOS bundle ID will be respected only if they
|
|||
|
* are configured in the same Firebase Auth project used.
|
|||
|
* @return {!firebase.Promise<void>}
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.sendSignInLinkToEmail = function(
|
|||
|
email,
|
|||
|
actionCodeSettings
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Sends a password reset email to the given email address.
|
|||
|
*
|
|||
|
* To complete the password reset, call
|
|||
|
* {@link firebase.auth.Auth#confirmPasswordReset} with the code supplied in the
|
|||
|
* email sent to the user, along with the new password specified by the user.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/invalid-email</dt>
|
|||
|
* <dd>Thrown if the email address is not valid.</dd>
|
|||
|
* <dt>auth/missing-android-pkg-name</dt>
|
|||
|
* <dd>An Android package name must be provided if the Android app is required
|
|||
|
* to be installed.</dd>
|
|||
|
* <dt>auth/missing-continue-uri</dt>
|
|||
|
* <dd>A continue URL must be provided in the request.</dd>
|
|||
|
* <dt>auth/missing-ios-bundle-id</dt>
|
|||
|
* <dd>An iOS Bundle ID must be provided if an App Store ID is provided.</dd>
|
|||
|
* <dt>auth/invalid-continue-uri</dt>
|
|||
|
* <dd>The continue URL provided in the request is invalid.</dd>
|
|||
|
* <dt>auth/unauthorized-continue-uri</dt>
|
|||
|
* <dd>The domain of the continue URL is not whitelisted. Whitelist
|
|||
|
* the domain in the Firebase console.</dd>
|
|||
|
* <dt>auth/user-not-found</dt>
|
|||
|
* <dd>Thrown if there is no user corresponding to the email address.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @example
|
|||
|
* var actionCodeSettings = {
|
|||
|
* url: 'https://www.example.com/?email=user@example.com',
|
|||
|
* iOS: {
|
|||
|
* bundleId: 'com.example.ios'
|
|||
|
* },
|
|||
|
* android: {
|
|||
|
* packageName: 'com.example.android',
|
|||
|
* installApp: true,
|
|||
|
* minimumVersion: '12'
|
|||
|
* },
|
|||
|
* handleCodeInApp: true
|
|||
|
* };
|
|||
|
* firebase.auth().sendPasswordResetEmail(
|
|||
|
* 'user@example.com', actionCodeSettings)
|
|||
|
* .then(function() {
|
|||
|
* // Password reset email sent.
|
|||
|
* })
|
|||
|
* .catch(function(error) {
|
|||
|
* // Error occurred. Inspect error.code.
|
|||
|
* });
|
|||
|
*
|
|||
|
* @param {string} email The email address with the password to be reset.
|
|||
|
* @param {?firebase.auth.ActionCodeSettings=} actionCodeSettings The action
|
|||
|
* code settings. If specified, the state/continue URL will be set as the
|
|||
|
* "continueUrl" parameter in the password reset link. The default password
|
|||
|
* reset landing page will use this to display a link to go back to the app
|
|||
|
* if it is installed.
|
|||
|
* If the actionCodeSettings is not specified, no URL is appended to the
|
|||
|
* action URL.
|
|||
|
* The state URL provided must belong to a domain that is whitelisted by the
|
|||
|
* developer in the console. Otherwise an error will be thrown.
|
|||
|
* Mobile app redirects will only be applicable if the developer configures
|
|||
|
* and accepts the Firebase Dynamic Links terms of condition.
|
|||
|
* The Android package name and iOS bundle ID will be respected only if they
|
|||
|
* are configured in the same Firebase Auth project used.
|
|||
|
* @return {!firebase.Promise<void>}
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.sendPasswordResetEmail = function(
|
|||
|
email,
|
|||
|
actionCodeSettings
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Completes the password reset process, given a confirmation code and new
|
|||
|
* password.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/expired-action-code</dt>
|
|||
|
* <dd>Thrown if the password reset code has expired.</dd>
|
|||
|
* <dt>auth/invalid-action-code</dt>
|
|||
|
* <dd>Thrown if the password reset code is invalid. This can happen if the
|
|||
|
* code is malformed or has already been used.</dd>
|
|||
|
* <dt>auth/user-disabled</dt>
|
|||
|
* <dd>Thrown if the user corresponding to the given password reset code has
|
|||
|
* been disabled.</dd>
|
|||
|
* <dt>auth/user-not-found</dt>
|
|||
|
* <dd>Thrown if there is no user corresponding to the password reset code. This
|
|||
|
* may have happened if the user was deleted between when the code was
|
|||
|
* issued and when this method was called.</dd>
|
|||
|
* <dt>auth/weak-password</dt>
|
|||
|
* <dd>Thrown if the new password is not strong enough.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @param {string} code The confirmation code send via email to the user.
|
|||
|
* @param {string} newPassword The new password.
|
|||
|
* @return {!firebase.Promise<void>}
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.confirmPasswordReset = function(
|
|||
|
code,
|
|||
|
newPassword
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Asynchronously signs in with the given credentials.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/account-exists-with-different-credential</dt>
|
|||
|
* <dd>Thrown if there already exists an account with the email address
|
|||
|
* asserted by the credential. Resolve this by calling
|
|||
|
* {@link firebase.auth.Auth#fetchSignInMethodsForEmail} and then asking the
|
|||
|
* user to sign in using one of the returned providers. Once the user is
|
|||
|
* signed in, the original credential can be linked to the user with
|
|||
|
* {@link firebase.User#linkWithCredential}.</dd>
|
|||
|
* <dt>auth/invalid-credential</dt>
|
|||
|
* <dd>Thrown if the credential is malformed or has expired.</dd>
|
|||
|
* <dt>auth/operation-not-allowed</dt>
|
|||
|
* <dd>Thrown if the type of account corresponding to the credential
|
|||
|
* is not enabled. Enable the account type in the Firebase Console, under
|
|||
|
* the Auth tab.</dd>
|
|||
|
* <dt>auth/user-disabled</dt>
|
|||
|
* <dd>Thrown if the user corresponding to the given credential has been
|
|||
|
* disabled.</dd>
|
|||
|
* <dt>auth/user-not-found</dt>
|
|||
|
* <dd>Thrown if signing in with a credential from
|
|||
|
* {@link firebase.auth.EmailAuthProvider#credential} and there is no user
|
|||
|
* corresponding to the given email. </dd>
|
|||
|
* <dt>auth/wrong-password</dt>
|
|||
|
* <dd>Thrown if signing in with a credential from
|
|||
|
* {@link firebase.auth.EmailAuthProvider#credential} and the password is
|
|||
|
* invalid for the given email, or if the account corresponding to the email
|
|||
|
* does not have a password set.</dd>
|
|||
|
* <dt>auth/invalid-verification-code</dt>
|
|||
|
* <dd>Thrown if the credential is a
|
|||
|
* {@link firebase.auth.PhoneAuthProvider#credential} and the verification
|
|||
|
* code of the credential is not valid.</dd>
|
|||
|
* <dt>auth/invalid-verification-id</dt>
|
|||
|
* <dd>Thrown if the credential is a
|
|||
|
* {@link firebase.auth.PhoneAuthProvider#credential} and the verification
|
|||
|
* ID of the credential is not valid.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @example
|
|||
|
* firebase.auth().signInWithCredential(credential).catch(function(error) {
|
|||
|
* // Handle Errors here.
|
|||
|
* var errorCode = error.code;
|
|||
|
* var errorMessage = error.message;
|
|||
|
* // The email of the user's account used.
|
|||
|
* var email = error.email;
|
|||
|
* // The firebase.auth.AuthCredential type that was used.
|
|||
|
* var credential = error.credential;
|
|||
|
* if (errorCode === 'auth/account-exists-with-different-credential') {
|
|||
|
* alert('Email already associated with another account.');
|
|||
|
* // Handle account linking here, if using.
|
|||
|
* } else {
|
|||
|
* console.error(error);
|
|||
|
* }
|
|||
|
* });
|
|||
|
*
|
|||
|
* @param {!firebase.auth.AuthCredential} credential The auth credential.
|
|||
|
* @return {!firebase.Promise<!firebase.auth.UserCredential>}
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.signInWithCredential = function(credential) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Asynchronously signs in with the given credentials, and returns any available
|
|||
|
* additional user information, such as user name.
|
|||
|
*
|
|||
|
* This method is deprecated. Use
|
|||
|
* {@link firebase.auth.Auth#signInWithCredential} instead.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/account-exists-with-different-credential</dt>
|
|||
|
* <dd>Thrown if there already exists an account with the email address
|
|||
|
* asserted by the credential. Resolve this by calling
|
|||
|
* {@link firebase.auth.Auth#fetchSignInMethodsForEmail} and then asking the
|
|||
|
* user to sign in using one of the returned providers. Once the user is
|
|||
|
* signed in, the original credential can be linked to the user with
|
|||
|
* {@link firebase.User#linkWithCredential}.</dd>
|
|||
|
* <dt>auth/invalid-credential</dt>
|
|||
|
* <dd>Thrown if the credential is malformed or has expired.</dd>
|
|||
|
* <dt>auth/operation-not-allowed</dt>
|
|||
|
* <dd>Thrown if the type of account corresponding to the credential
|
|||
|
* is not enabled. Enable the account type in the Firebase Console, under
|
|||
|
* the Auth tab.</dd>
|
|||
|
* <dt>auth/user-disabled</dt>
|
|||
|
* <dd>Thrown if the user corresponding to the given credential has been
|
|||
|
* disabled.</dd>
|
|||
|
* <dt>auth/user-not-found</dt>
|
|||
|
* <dd>Thrown if signing in with a credential from
|
|||
|
* {@link firebase.auth.EmailAuthProvider#credential} and there is no user
|
|||
|
* corresponding to the given email. </dd>
|
|||
|
* <dt>auth/wrong-password</dt>
|
|||
|
* <dd>Thrown if signing in with a credential from
|
|||
|
* {@link firebase.auth.EmailAuthProvider#credential} and the password is
|
|||
|
* invalid for the given email, or if the account corresponding to the email
|
|||
|
* does not have a password set.</dd>
|
|||
|
* <dt>auth/invalid-verification-code</dt>
|
|||
|
* <dd>Thrown if the credential is a
|
|||
|
* {@link firebase.auth.PhoneAuthProvider#credential} and the verification
|
|||
|
* code of the credential is not valid.</dd>
|
|||
|
* <dt>auth/invalid-verification-id</dt>
|
|||
|
* <dd>Thrown if the credential is a
|
|||
|
* {@link firebase.auth.PhoneAuthProvider#credential} and the verification
|
|||
|
* ID of the credential is not valid.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @example
|
|||
|
* firebase.auth().signInAndRetrieveDataWithCredential(credential)
|
|||
|
* .then(function(userCredential) {
|
|||
|
* console.log(userCredential.additionalUserInfo.username);
|
|||
|
* });
|
|||
|
*
|
|||
|
* @param {!firebase.auth.AuthCredential} credential The auth credential.
|
|||
|
* @return {!firebase.Promise<!firebase.auth.UserCredential>}
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.signInAndRetrieveDataWithCredential = function(
|
|||
|
credential
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Asynchronously signs in using a custom token.
|
|||
|
*
|
|||
|
* Custom tokens are used to integrate Firebase Auth with existing auth systems,
|
|||
|
* and must be generated by the auth backend.
|
|||
|
*
|
|||
|
* Fails with an error if the token is invalid, expired, or not accepted by the
|
|||
|
* Firebase Auth service.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/custom-token-mismatch</dt>
|
|||
|
* <dd>Thrown if the custom token is for a different Firebase App.</dd>
|
|||
|
* <dt>auth/invalid-custom-token</dt>
|
|||
|
* <dd>Thrown if the custom token format is incorrect.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @example
|
|||
|
* firebase.auth().signInWithCustomToken(token).catch(function(error) {
|
|||
|
* // Handle Errors here.
|
|||
|
* var errorCode = error.code;
|
|||
|
* var errorMessage = error.message;
|
|||
|
* if (errorCode === 'auth/invalid-custom-token') {
|
|||
|
* alert('The token you provided is not valid.');
|
|||
|
* } else {
|
|||
|
* console.error(error);
|
|||
|
* }
|
|||
|
* });
|
|||
|
*
|
|||
|
* @param {string} token The custom token to sign in with.
|
|||
|
* @return {!firebase.Promise<!firebase.auth.UserCredential>}
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.signInWithCustomToken = function(token) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Asynchronously signs in using an email and password.
|
|||
|
*
|
|||
|
* Fails with an error if the email address and password do not match.
|
|||
|
*
|
|||
|
* Note: The user's password is NOT the password used to access the user's email
|
|||
|
* account. The email address serves as a unique identifier for the user, and
|
|||
|
* the password is used to access the user's account in your Firebase project.
|
|||
|
*
|
|||
|
* See also: {@link firebase.auth.Auth#createUserWithEmailAndPassword}.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/invalid-email</dt>
|
|||
|
* <dd>Thrown if the email address is not valid.</dd>
|
|||
|
* <dt>auth/user-disabled</dt>
|
|||
|
* <dd>Thrown if the user corresponding to the given email has been
|
|||
|
* disabled.</dd>
|
|||
|
* <dt>auth/user-not-found</dt>
|
|||
|
* <dd>Thrown if there is no user corresponding to the given email.</dd>
|
|||
|
* <dt>auth/wrong-password</dt>
|
|||
|
* <dd>Thrown if the password is invalid for the given email, or the account
|
|||
|
* corresponding to the email does not have a password set.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @example
|
|||
|
* firebase.auth().signInWithEmailAndPassword(email, password)
|
|||
|
* .catch(function(error) {
|
|||
|
* // Handle Errors here.
|
|||
|
* var errorCode = error.code;
|
|||
|
* var errorMessage = error.message;
|
|||
|
* if (errorCode === 'auth/wrong-password') {
|
|||
|
* alert('Wrong password.');
|
|||
|
* } else {
|
|||
|
* alert(errorMessage);
|
|||
|
* }
|
|||
|
* console.log(error);
|
|||
|
* });
|
|||
|
*
|
|||
|
* @param {string} email The users email address.
|
|||
|
* @param {string} password The users password.
|
|||
|
* @return {!firebase.Promise<!firebase.auth.UserCredential>}
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.signInWithEmailAndPassword = function(
|
|||
|
email,
|
|||
|
password
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Asynchronously signs in using an email and sign-in email link. If no link
|
|||
|
* is passed, the link is inferred from the current URL.
|
|||
|
*
|
|||
|
* Fails with an error if the email address is invalid or OTP in email link
|
|||
|
* expires.
|
|||
|
*
|
|||
|
* Note: Confirm the link is a sign-in email link before calling this method
|
|||
|
* {@link firebase.auth.Auth#isSignInWithEmailLink}.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/expired-action-code</dt>
|
|||
|
* <dd>Thrown if OTP in email link expires.</dd>
|
|||
|
* <dt>auth/invalid-email</dt>
|
|||
|
* <dd>Thrown if the email address is not valid.</dd>
|
|||
|
* <dt>auth/user-disabled</dt>
|
|||
|
* <dd>Thrown if the user corresponding to the given email has been
|
|||
|
* disabled.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @example
|
|||
|
* firebase.auth().signInWithEmailLink(email, emailLink)
|
|||
|
* .catch(function(error) {
|
|||
|
* // Some error occurred, you can inspect the code: error.code
|
|||
|
* // Common errors could be invalid email and invalid or expired OTPs.
|
|||
|
* });
|
|||
|
*
|
|||
|
* @param {string} email The email account to sign in with.
|
|||
|
* @param {?string=} emailLink The optional link which contains the OTP needed
|
|||
|
* to complete the sign in with email link. If not specified, the current
|
|||
|
* URL is used instead.
|
|||
|
* @return {!firebase.Promise<!firebase.auth.UserCredential>}
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.signInWithEmailLink = function(
|
|||
|
email,
|
|||
|
emailLink
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Asynchronously signs in using a phone number. This method sends a code via
|
|||
|
* SMS to the given phone number, and returns a
|
|||
|
* {@link firebase.auth.ConfirmationResult}. After the user provides the code
|
|||
|
* sent to their phone, call {@link firebase.auth.ConfirmationResult#confirm}
|
|||
|
* with the code to sign the user in.
|
|||
|
*
|
|||
|
* For abuse prevention, this method also requires a
|
|||
|
* {@link firebase.auth.ApplicationVerifier}. The Firebase Auth SDK includes
|
|||
|
* a reCAPTCHA-based implementation, {@link firebase.auth.RecaptchaVerifier}.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/captcha-check-failed</dt>
|
|||
|
* <dd>Thrown if the reCAPTCHA response token was invalid, expired, or if
|
|||
|
* this method was called from a non-whitelisted domain.</dd>
|
|||
|
* <dt>auth/invalid-phone-number</dt>
|
|||
|
* <dd>Thrown if the phone number has an invalid format.</dd>
|
|||
|
* <dt>auth/missing-phone-number</dt>
|
|||
|
* <dd>Thrown if the phone number is missing.</dd>
|
|||
|
* <dt>auth/quota-exceeded</dt>
|
|||
|
* <dd>Thrown if the SMS quota for the Firebase project has been exceeded.</dd>
|
|||
|
* <dt>auth/user-disabled</dt>
|
|||
|
* <dd>Thrown if the user corresponding to the given phone number has been
|
|||
|
* disabled.</dd>
|
|||
|
* <dt>auth/operation-not-allowed</dt>
|
|||
|
* <dd>Thrown if you have not enabled the provider in the Firebase Console. Go
|
|||
|
* to the Firebase Console for your project, in the Auth section and the
|
|||
|
* <strong>Sign in Method</strong> tab and configure the provider.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @example
|
|||
|
* // 'recaptcha-container' is the ID of an element in the DOM.
|
|||
|
* var applicationVerifier = new firebase.auth.RecaptchaVerifier(
|
|||
|
* 'recaptcha-container');
|
|||
|
* firebase.auth().signInWithPhoneNumber(phoneNumber, applicationVerifier)
|
|||
|
* .then(function(confirmationResult) {
|
|||
|
* var verificationCode = window.prompt('Please enter the verification ' +
|
|||
|
* 'code that was sent to your mobile device.');
|
|||
|
* return confirmationResult.confirm(verificationCode);
|
|||
|
* })
|
|||
|
* .catch(function(error) {
|
|||
|
* // Handle Errors here.
|
|||
|
* });
|
|||
|
*
|
|||
|
* @param {string} phoneNumber The user's phone number in E.164 format (e.g.
|
|||
|
* +16505550101).
|
|||
|
* @param {!firebase.auth.ApplicationVerifier} applicationVerifier
|
|||
|
* @return {!firebase.Promise<!firebase.auth.ConfirmationResult>}
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.signInWithPhoneNumber = function(
|
|||
|
phoneNumber,
|
|||
|
applicationVerifier
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* A result from a phone number sign-in, link, or reauthenticate call.
|
|||
|
* @interface
|
|||
|
*/
|
|||
|
firebase.auth.ConfirmationResult = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* The phone number authentication operation's verification ID. This can be used
|
|||
|
* along with the verification code to initialize a phone auth credential.
|
|||
|
*
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.ConfirmationResult.prototype.verificationId;
|
|||
|
|
|||
|
/**
|
|||
|
* Finishes a phone number sign-in, link, or reauthentication, given the code
|
|||
|
* that was sent to the user's mobile device.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/invalid-verification-code</dt>
|
|||
|
* <dd>Thrown if the verification code is not valid.</dd>
|
|||
|
* <dt>auth/missing-verification-code</dt>
|
|||
|
* <dd>Thrown if the verification code is missing.</dd>
|
|||
|
* </dl>
|
|||
|
* @param {string} verificationCode
|
|||
|
* @return {!firebase.Promise<!firebase.auth.UserCredential>}
|
|||
|
*/
|
|||
|
firebase.auth.ConfirmationResult.prototype.confirm = function(
|
|||
|
verificationCode
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Asynchronously signs in as an anonymous user.
|
|||
|
*
|
|||
|
*
|
|||
|
* If there is already an anonymous user signed in, that user will be returned;
|
|||
|
* otherwise, a new anonymous user identity will be created and returned.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/operation-not-allowed</dt>
|
|||
|
* <dd>Thrown if anonymous accounts are not enabled. Enable anonymous accounts
|
|||
|
* in the Firebase Console, under the Auth tab.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @example
|
|||
|
* firebase.auth().signInAnonymously().catch(function(error) {
|
|||
|
* // Handle Errors here.
|
|||
|
* var errorCode = error.code;
|
|||
|
* var errorMessage = error.message;
|
|||
|
*
|
|||
|
* if (errorCode === 'auth/operation-not-allowed') {
|
|||
|
* alert('You must enable Anonymous auth in the Firebase Console.');
|
|||
|
* } else {
|
|||
|
* console.error(error);
|
|||
|
* }
|
|||
|
* });
|
|||
|
*
|
|||
|
* @return {!firebase.Promise<!firebase.auth.UserCredential>}
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.signInAnonymously = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* Asynchronously sets the provided user as `currentUser` on the current Auth
|
|||
|
* instance. A new instance copy of the user provided will be made and set as
|
|||
|
* `currentUser`.
|
|||
|
*
|
|||
|
* This will trigger {@link firebase.auth.Auth#onAuthStateChanged} and
|
|||
|
* {@link firebase.auth.Auth#onIdTokenChanged} listeners like other sign in
|
|||
|
* methods.
|
|||
|
*
|
|||
|
* The operation fails with an error if the user to be updated belongs to a
|
|||
|
* different Firebase project.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/invalid-user-token</dt>
|
|||
|
* <dd>Thrown if the user to be updated belongs to a diffent Firebase
|
|||
|
* project.</dd>
|
|||
|
* <dt>auth/user-token-expired</dt>
|
|||
|
* <dd>Thrown if the token of the user to be updated is expired.</dd>
|
|||
|
* <dt>auth/null-user</dt>
|
|||
|
* <dd>Thrown if the user to be updated is null.</dd>
|
|||
|
* <dt>auth/tenant-id-mismatch</dt>
|
|||
|
* <dd>Thrown if the provided user's tenant ID does not match the
|
|||
|
* underlying Auth instance's configured tenant ID</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @param {?firebase.User} user
|
|||
|
* @return {!firebase.Promise<void>}
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.updateCurrentUser = function(user) {};
|
|||
|
|
|||
|
/**
|
|||
|
* A structure containing a User, an AuthCredential, the operationType, and
|
|||
|
* any additional user information that was returned from the identity provider.
|
|||
|
* operationType could be 'signIn' for a sign-in operation, 'link' for a linking
|
|||
|
* operation and 'reauthenticate' for a reauthentication operation.
|
|||
|
*
|
|||
|
* @typedef {{
|
|||
|
* user: ?firebase.User,
|
|||
|
* credential: ?firebase.auth.AuthCredential,
|
|||
|
* operationType: (?string|undefined),
|
|||
|
* additionalUserInfo: (?firebase.auth.AdditionalUserInfo|undefined)
|
|||
|
* }}
|
|||
|
*/
|
|||
|
firebase.auth.UserCredential;
|
|||
|
|
|||
|
/**
|
|||
|
* A structure containing additional user information from a federated identity
|
|||
|
* provider.
|
|||
|
* @typedef {{
|
|||
|
* providerId: string,
|
|||
|
* profile: ?Object,
|
|||
|
* username: (?string|undefined),
|
|||
|
* isNewUser: boolean
|
|||
|
* }}
|
|||
|
*/
|
|||
|
firebase.auth.AdditionalUserInfo;
|
|||
|
|
|||
|
/**
|
|||
|
* Interface representing ID token result obtained from
|
|||
|
* {@link firebase.User#getIdTokenResult}. It contains the ID token JWT string
|
|||
|
* and other helper properties for getting different data associated with the
|
|||
|
* token as well as all the decoded payload claims.
|
|||
|
*
|
|||
|
* Note that these claims are not to be trusted as they are parsed client side.
|
|||
|
* Only server side verification can guarantee the integrity of the token
|
|||
|
* claims.
|
|||
|
*
|
|||
|
* @interface
|
|||
|
*/
|
|||
|
firebase.auth.IdTokenResult = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* The Firebase Auth ID token JWT string.
|
|||
|
*
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.IdTokenResult.prototype.token;
|
|||
|
|
|||
|
/**
|
|||
|
* The ID token expiration time formatted as a UTC string.
|
|||
|
*
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.IdTokenResult.prototype.expirationTime;
|
|||
|
|
|||
|
/**
|
|||
|
* The authentication time formatted as a UTC string. This is the time the
|
|||
|
* user authenticated (signed in) and not the time the token was refreshed.
|
|||
|
*
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.IdTokenResult.prototype.authTime;
|
|||
|
|
|||
|
/**
|
|||
|
* The ID token issued at time formatted as a UTC string.
|
|||
|
*
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.IdTokenResult.prototype.issuedAtTime;
|
|||
|
|
|||
|
/**
|
|||
|
* The sign-in provider through which the ID token was obtained (anonymous,
|
|||
|
* custom, phone, password, etc). Note, this does not map to provider IDs.
|
|||
|
*
|
|||
|
* @type {?string}
|
|||
|
*/
|
|||
|
firebase.auth.IdTokenResult.prototype.signInProvider;
|
|||
|
|
|||
|
/**
|
|||
|
* The type of second factor associated with this session, provided the user
|
|||
|
* was multi-factor authenticated (eg. phone, etc).
|
|||
|
*
|
|||
|
* @type {?string}
|
|||
|
*/
|
|||
|
firebase.auth.IdTokenResult.prototype.signInSecondFactor;
|
|||
|
|
|||
|
/**
|
|||
|
* The entire payload claims of the ID token including the standard reserved
|
|||
|
* claims as well as the custom claims.
|
|||
|
*
|
|||
|
* @type {!Object}
|
|||
|
*/
|
|||
|
firebase.auth.IdTokenResult.prototype.claims;
|
|||
|
|
|||
|
/**
|
|||
|
* Interface representing an Auth instance's settings, currently used for
|
|||
|
* enabling/disabling app verification for phone Auth testing.
|
|||
|
*
|
|||
|
* @interface
|
|||
|
*/
|
|||
|
firebase.auth.AuthSettings = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* When set, this property disables app verification for the purpose of testing
|
|||
|
* phone authentication. For this property to take effect, it needs to be set
|
|||
|
* before rendering a reCAPTCHA app verifier. When this is disabled, a
|
|||
|
* mock reCAPTCHA is rendered instead. This is useful for manual testing during
|
|||
|
* development or for automated integration tests.
|
|||
|
*
|
|||
|
* In order to use this feature, you will need to
|
|||
|
* {@link https://firebase.google.com/docs/auth/web/phone-auth#test-with-whitelisted-phone-numbers
|
|||
|
* whitelist your phone number} via the
|
|||
|
* Firebase Console.
|
|||
|
*
|
|||
|
* The default value is false (app verification is enabled).
|
|||
|
*
|
|||
|
* @type {boolean}
|
|||
|
*/
|
|||
|
firebase.auth.AuthSettings.prototype.appVerificationDisabledForTesting;
|
|||
|
|
|||
|
/**
|
|||
|
* Signs out the current user.
|
|||
|
*
|
|||
|
* @return {!firebase.Promise<void>}
|
|||
|
*/
|
|||
|
firebase.auth.Auth.prototype.signOut = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* An authentication error.
|
|||
|
* For method-specific error codes, refer to the specific methods in the
|
|||
|
* documentation. For common error codes, check the reference below. Use {@link
|
|||
|
* firebase.auth.Error#code} to get the specific error code. For a detailed
|
|||
|
* message, use {@link firebase.auth.Error#message}.
|
|||
|
* Errors with the code <strong>auth/account-exists-with-different-credential
|
|||
|
* </strong> will have the additional fields <strong>email</strong> and <strong>
|
|||
|
* credential</strong> which are needed to provide a way to resolve these
|
|||
|
* specific errors. Refer to {@link firebase.auth.Auth#signInWithPopup} for more
|
|||
|
* information.
|
|||
|
*
|
|||
|
* <h4>Common Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/app-deleted</dt>
|
|||
|
* <dd>Thrown if the instance of FirebaseApp has been deleted.</dd>
|
|||
|
* <dt>auth/app-not-authorized</dt>
|
|||
|
* <dd>Thrown if the app identified by the domain where it's hosted, is not
|
|||
|
* authorized to use Firebase Authentication with the provided API key.
|
|||
|
* Review your key configuration in the Google API console.</dd>
|
|||
|
* <dt>auth/argument-error</dt>
|
|||
|
* <dd>Thrown if a method is called with incorrect arguments.</dd>
|
|||
|
* <dt>auth/invalid-api-key</dt>
|
|||
|
* <dd>Thrown if the provided API key is invalid. Please check that you have
|
|||
|
* copied it correctly from the Firebase Console.</dd>
|
|||
|
* <dt>auth/invalid-user-token</dt>
|
|||
|
* <dd>Thrown if the user's credential is no longer valid. The user must sign in
|
|||
|
* again.</dd>
|
|||
|
* <dt>auth/network-request-failed</dt>
|
|||
|
* <dd>Thrown if a network error (such as timeout, interrupted connection or
|
|||
|
* unreachable host) has occurred.</dd>
|
|||
|
* <dt>auth/operation-not-allowed</dt>
|
|||
|
* <dd>Thrown if you have not enabled the provider in the Firebase Console. Go
|
|||
|
* to the Firebase Console for your project, in the Auth section and the
|
|||
|
* <strong>Sign in Method</strong> tab and configure the provider.</dd>
|
|||
|
* <dt>auth/requires-recent-login</dt>
|
|||
|
* <dd>Thrown if the user's last sign-in time does not meet the security
|
|||
|
* threshold. Use {@link firebase.User#reauthenticateWithCredential} to
|
|||
|
* resolve. This does not apply if the user is anonymous.</dd>
|
|||
|
* <dt>auth/too-many-requests</dt>
|
|||
|
* <dd>Thrown if requests are blocked from a device due to unusual activity.
|
|||
|
* Trying again after some delay would unblock.</dd>
|
|||
|
* <dt>auth/unauthorized-domain</dt>
|
|||
|
* <dd>Thrown if the app domain is not authorized for OAuth operations for your
|
|||
|
* Firebase project. Edit the list of authorized domains from the Firebase
|
|||
|
* console.</dd>
|
|||
|
* <dt>auth/user-disabled</dt>
|
|||
|
* <dd>Thrown if the user account has been disabled by an administrator.
|
|||
|
* Accounts can be enabled or disabled in the Firebase Console, the Auth
|
|||
|
* section and Users subsection.</dd>
|
|||
|
* <dt>auth/user-token-expired</dt>
|
|||
|
* <dd>Thrown if the user's credential has expired. This could also be thrown if
|
|||
|
* a user has been deleted. Prompting the user to sign in again should
|
|||
|
* resolve this for either case.</dd>
|
|||
|
* <dt>auth/web-storage-unsupported</dt>
|
|||
|
* <dd>Thrown if the browser does not support web storage or if the user
|
|||
|
* disables them.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @interface
|
|||
|
*/
|
|||
|
firebase.auth.Error = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* Unique error code.
|
|||
|
*
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.Error.prototype.code;
|
|||
|
|
|||
|
/**
|
|||
|
* Complete error message.
|
|||
|
*
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.Error.prototype.message;
|
|||
|
|
|||
|
/**
|
|||
|
* The account conflict error.
|
|||
|
* Refer to {@link firebase.auth.Auth.signInWithPopup} for more information.
|
|||
|
*
|
|||
|
* <h4>Common Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/account-exists-with-different-credential</dt>
|
|||
|
* <dd>Thrown if there already exists an account with the email address
|
|||
|
* asserted by the credential. Resolve this by calling
|
|||
|
* {@link firebase.auth.Auth.fetchSignInMethodsForEmail} with the
|
|||
|
* error.email and then asking the user to sign in using one of the returned
|
|||
|
* providers. Once the user is signed in, the original credential retrieved
|
|||
|
* from the error.credential can be linked to the user with
|
|||
|
* {@link firebase.User.linkWithCredential} to prevent the user from signing
|
|||
|
* in again to the original provider via popup or redirect. If you are using
|
|||
|
* redirects for sign in, save the credential in session storage and then
|
|||
|
* retrieve on redirect and repopulate the credential using for example
|
|||
|
* {@link firebase.auth.GoogleAuthProvider.credential} depending on the
|
|||
|
* credential provider id and complete the link.</dd>
|
|||
|
* <dt>auth/credential-already-in-use</dt>
|
|||
|
* <dd>Thrown if the account corresponding to the credential already exists
|
|||
|
* among your users, or is already linked to a Firebase User.
|
|||
|
* For example, this error could be thrown if you are upgrading an anonymous
|
|||
|
* user to a Google user by linking a Google credential to it and the Google
|
|||
|
* credential used is already associated with an existing Firebase Google
|
|||
|
* user.
|
|||
|
* The fields <code>error.email</code>, <code>error.phoneNumber</code>, and
|
|||
|
* <code>error.credential</code> ({@link firebase.auth.AuthCredential})
|
|||
|
* may be provided, depending on the type of credential. You can recover
|
|||
|
* from this error by signing in with <code>error.credential</code> directly
|
|||
|
* via {@link firebase.auth.Auth.signInWithCredential}.</dd>
|
|||
|
* <dt>auth/email-already-in-use</dt>
|
|||
|
* <dd>Thrown if the email corresponding to the credential already exists
|
|||
|
* among your users. When thrown while linking a credential to an existing
|
|||
|
* user, an <code>error.email</code> and <code>error.credential</code>
|
|||
|
* ({@link firebase.auth.AuthCredential}) fields are also provided.
|
|||
|
* You have to link the credential to the existing user with that email if
|
|||
|
* you wish to continue signing in with that credential. To do so, call
|
|||
|
* {@link firebase.auth.Auth.fetchSignInMethodsForEmail}, sign in to
|
|||
|
* <code>error.email</code> via one of the providers returned and then
|
|||
|
* {@link firebase.User.linkWithCredential} the original credential to that
|
|||
|
* newly signed in user.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @interface
|
|||
|
* @extends {firebase.auth.Error}
|
|||
|
*/
|
|||
|
firebase.auth.AuthError = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* The {@link firebase.auth.AuthCredential} that can be used to resolve the
|
|||
|
* error.
|
|||
|
*
|
|||
|
* @type {!firebase.auth.AuthCredential|undefined}
|
|||
|
*/
|
|||
|
firebase.auth.AuthError.prototype.credential;
|
|||
|
|
|||
|
/**
|
|||
|
* The email of the user's account used for sign-in/linking.
|
|||
|
*
|
|||
|
* @type {string|undefined}
|
|||
|
*/
|
|||
|
firebase.auth.AuthError.prototype.email;
|
|||
|
|
|||
|
/**
|
|||
|
* The phone number of the user's account used for sign-in/linking.
|
|||
|
*
|
|||
|
* @type {string|undefined}
|
|||
|
*/
|
|||
|
firebase.auth.AuthError.prototype.phoneNumber;
|
|||
|
|
|||
|
/**
|
|||
|
* The tenant ID being used for sign-in/linking. If you use
|
|||
|
* {@link firebase.auth.signInWithRedirect} to sign in, you have to
|
|||
|
* set the tenant ID on Auth instanace again as the tenant ID is not
|
|||
|
* persisted after redirection.
|
|||
|
*
|
|||
|
* @type {string|undefined}
|
|||
|
*/
|
|||
|
firebase.auth.AuthError.prototype.tenantId;
|
|||
|
|
|||
|
/**
|
|||
|
* The error thrown when the user needs to provide a second factor to sign in
|
|||
|
* successfully.
|
|||
|
* The error code for this error is <code>auth/multi-factor-auth-required</code>.
|
|||
|
* This error provides a {@link firebase.auth.MultiFactorResolver} object,
|
|||
|
* which you can use to get the second sign-in factor from the user.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* ```javascript
|
|||
|
* firebase.auth().signInWithEmailAndPassword()
|
|||
|
* .then(function(result) {
|
|||
|
* // User signed in. No 2nd factor challenge is needed.
|
|||
|
* })
|
|||
|
* .catch(function(error) {
|
|||
|
* if (error.code == 'auth/multi-factor-auth-required') {
|
|||
|
* var resolver = error.resolver;
|
|||
|
* var multiFactorHints = resolver.hints;
|
|||
|
* } else {
|
|||
|
* // Handle other errors.
|
|||
|
* }
|
|||
|
* });
|
|||
|
*
|
|||
|
* resolver.resolveSignIn(multiFactorAssertion)
|
|||
|
* .then(function(userCredential) {
|
|||
|
* // User signed in.
|
|||
|
* });
|
|||
|
* ```
|
|||
|
*
|
|||
|
* @interface
|
|||
|
* @extends {firebase.auth.Error}
|
|||
|
*/
|
|||
|
firebase.auth.MultiFactorError = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* The multi-factor resolver to complete second factor sign-in.
|
|||
|
*
|
|||
|
* @type {!firebase.auth.MultiFactorResolver}
|
|||
|
*/
|
|||
|
firebase.auth.MultiFactorError.prototype.resolver;
|
|||
|
|
|||
|
//
|
|||
|
// List of Auth Providers.
|
|||
|
//
|
|||
|
|
|||
|
/**
|
|||
|
* Interface that represents an auth provider.
|
|||
|
*
|
|||
|
* @interface
|
|||
|
*/
|
|||
|
firebase.auth.AuthProvider = function() {};
|
|||
|
|
|||
|
/** @type {string} */
|
|||
|
firebase.auth.AuthProvider.prototype.providerId;
|
|||
|
|
|||
|
/**
|
|||
|
* Generic OAuth provider.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* // Using a redirect.
|
|||
|
* firebase.auth().getRedirectResult().then(function(result) {
|
|||
|
* if (result.credential) {
|
|||
|
* // This gives you the OAuth Access Token for that provider.
|
|||
|
* var token = result.credential.accessToken;
|
|||
|
* }
|
|||
|
* var user = result.user;
|
|||
|
* });
|
|||
|
*
|
|||
|
* // Start a sign in process for an unauthenticated user.
|
|||
|
* var provider = new firebase.auth.OAuthProvider('google.com');
|
|||
|
* provider.addScope('profile');
|
|||
|
* provider.addScope('email');
|
|||
|
* firebase.auth().signInWithRedirect(provider);
|
|||
|
*
|
|||
|
* @example
|
|||
|
* // Using a popup.
|
|||
|
* var provider = new firebase.auth.OAuthProvider('google.com');
|
|||
|
* provider.addScope('profile');
|
|||
|
* provider.addScope('email');
|
|||
|
* firebase.auth().signInWithPopup(provider).then(function(result) {
|
|||
|
* // This gives you the OAuth Access Token for that provider.
|
|||
|
* var token = result.credential.accessToken;
|
|||
|
* // The signed-in user info.
|
|||
|
* var user = result.user;
|
|||
|
* });
|
|||
|
*
|
|||
|
* @see {@link firebase.auth.Auth#onAuthStateChanged} to receive sign in state
|
|||
|
* changes.
|
|||
|
* @param {string} providerId The associated provider ID, such as `github.com`.
|
|||
|
* @constructor
|
|||
|
* @implements {firebase.auth.AuthProvider}
|
|||
|
*/
|
|||
|
firebase.auth.OAuthProvider = function(providerId) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Creates a Firebase credential from a generic OAuth provider's access token or
|
|||
|
* ID token. The raw nonce is required when an ID token with a nonce field is
|
|||
|
* provided. The SHA-256 hash of the raw nonce must match the nonce field in
|
|||
|
* the ID token.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* // `googleUser` from the onsuccess Google Sign In callback.
|
|||
|
* // Initialize a generate OAuth provider with a `google.com` providerId.
|
|||
|
* var provider = new firebase.auth.OAuthProvider('google.com');
|
|||
|
* var credential = provider.credential({
|
|||
|
* idToken: googleUser.getAuthResponse().id_token,
|
|||
|
* });
|
|||
|
* firebase.auth().signInWithCredential(credential)
|
|||
|
*
|
|||
|
* @param {?firebase.auth.OAuthCredentialOptions|string} optionsOrIdToken Either
|
|||
|
* the options object containing the ID token, access token and raw nonce or
|
|||
|
* the ID token string.
|
|||
|
* @param {?string=} accessToken The OAuth access token.
|
|||
|
* @return {!firebase.auth.OAuthCredential} The auth provider credential.
|
|||
|
*/
|
|||
|
firebase.auth.OAuthProvider.prototype.credential = function(
|
|||
|
optionsOrIdToken,
|
|||
|
accessToken
|
|||
|
) {};
|
|||
|
|
|||
|
/** @type {string} */
|
|||
|
firebase.auth.OAuthProvider.prototype.providerId;
|
|||
|
|
|||
|
/**
|
|||
|
* @param {string} scope Provider OAuth scope to add.
|
|||
|
* @return {!firebase.auth.OAuthProvider} The provider instance.
|
|||
|
*/
|
|||
|
firebase.auth.OAuthProvider.prototype.addScope = function(scope) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Sets the OAuth custom parameters to pass in an OAuth request for popup
|
|||
|
* and redirect sign-in operations.
|
|||
|
* For a detailed list, check the
|
|||
|
* reserved required OAuth 2.0 parameters such as `client_id`, `redirect_uri`,
|
|||
|
* `scope`, `response_type` and `state` are not allowed and will be ignored.
|
|||
|
* @param {!Object} customOAuthParameters The custom OAuth parameters to pass
|
|||
|
* in the OAuth request.
|
|||
|
* @return {!firebase.auth.OAuthProvider} The provider instance.
|
|||
|
*/
|
|||
|
firebase.auth.OAuthProvider.prototype.setCustomParameters = function(
|
|||
|
customOAuthParameters
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Facebook auth provider.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* // Sign in using a redirect.
|
|||
|
* firebase.auth().getRedirectResult().then(function(result) {
|
|||
|
* if (result.credential) {
|
|||
|
* // This gives you a Google Access Token.
|
|||
|
* var token = result.credential.accessToken;
|
|||
|
* }
|
|||
|
* var user = result.user;
|
|||
|
* })
|
|||
|
* // Start a sign in process for an unauthenticated user.
|
|||
|
* var provider = new firebase.auth.FacebookAuthProvider();
|
|||
|
* provider.addScope('user_birthday');
|
|||
|
* firebase.auth().signInWithRedirect(provider);
|
|||
|
*
|
|||
|
* @example
|
|||
|
* // Sign in using a popup.
|
|||
|
* var provider = new firebase.auth.FacebookAuthProvider();
|
|||
|
* provider.addScope('user_birthday');
|
|||
|
* firebase.auth().signInWithPopup(provider).then(function(result) {
|
|||
|
* // This gives you a Facebook Access Token.
|
|||
|
* var token = result.credential.accessToken;
|
|||
|
* // The signed-in user info.
|
|||
|
* var user = result.user;
|
|||
|
* });
|
|||
|
*
|
|||
|
* @see {@link firebase.auth.Auth#onAuthStateChanged} to receive sign in state
|
|||
|
* changes.
|
|||
|
* @constructor
|
|||
|
* @implements {firebase.auth.AuthProvider}
|
|||
|
*/
|
|||
|
firebase.auth.FacebookAuthProvider = function() {};
|
|||
|
|
|||
|
/** @type {string} */
|
|||
|
firebase.auth.FacebookAuthProvider.PROVIDER_ID;
|
|||
|
|
|||
|
/**
|
|||
|
* This corresponds to the sign-in method identifier as returned in
|
|||
|
* {@link firebase.auth.Auth#fetchSignInMethodsForEmail}.
|
|||
|
*
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.FacebookAuthProvider.FACEBOOK_SIGN_IN_METHOD;
|
|||
|
|
|||
|
/**
|
|||
|
* @example
|
|||
|
* var cred = firebase.auth.FacebookAuthProvider.credential(
|
|||
|
* // `event` from the Facebook auth.authResponseChange callback.
|
|||
|
* event.authResponse.accessToken
|
|||
|
* );
|
|||
|
*
|
|||
|
* @param {string} token Facebook access token.
|
|||
|
* @return {!firebase.auth.OAuthCredential} The auth provider credential.
|
|||
|
*/
|
|||
|
firebase.auth.FacebookAuthProvider.credential = function(token) {};
|
|||
|
|
|||
|
/** @type {string} */
|
|||
|
firebase.auth.FacebookAuthProvider.prototype.providerId;
|
|||
|
|
|||
|
/**
|
|||
|
* @param {string} scope Facebook OAuth scope.
|
|||
|
* @return {!firebase.auth.AuthProvider} The provider instance itself.
|
|||
|
*/
|
|||
|
firebase.auth.FacebookAuthProvider.prototype.addScope = function(scope) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Sets the OAuth custom parameters to pass in a Facebook OAuth request for
|
|||
|
* popup and redirect sign-in operations.
|
|||
|
* Valid parameters include 'auth_type', 'display' and 'locale'.
|
|||
|
* For a detailed list, check the
|
|||
|
* {@link https://goo.gl/pve4fo Facebook}
|
|||
|
* documentation.
|
|||
|
* Reserved required OAuth 2.0 parameters such as 'client_id', 'redirect_uri',
|
|||
|
* 'scope', 'response_type' and 'state' are not allowed and will be ignored.
|
|||
|
* @param {!Object} customOAuthParameters The custom OAuth parameters to pass
|
|||
|
* in the OAuth request.
|
|||
|
* @return {!firebase.auth.AuthProvider} The provider instance itself.
|
|||
|
*/
|
|||
|
firebase.auth.FacebookAuthProvider.prototype.setCustomParameters = function(
|
|||
|
customOAuthParameters
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Github auth provider.
|
|||
|
*
|
|||
|
* GitHub requires an OAuth 2.0 redirect, so you can either handle the redirect
|
|||
|
* directly, or use the signInWithPopup handler:
|
|||
|
*
|
|||
|
* @example
|
|||
|
* // Using a redirect.
|
|||
|
* firebase.auth().getRedirectResult().then(function(result) {
|
|||
|
* if (result.credential) {
|
|||
|
* // This gives you a GitHub Access Token.
|
|||
|
* var token = result.credential.accessToken;
|
|||
|
* }
|
|||
|
* var user = result.user;
|
|||
|
* }).catch(function(error) {
|
|||
|
* // Handle Errors here.
|
|||
|
* var errorCode = error.code;
|
|||
|
* var errorMessage = error.message;
|
|||
|
* // The email of the user's account used.
|
|||
|
* var email = error.email;
|
|||
|
* // The firebase.auth.AuthCredential type that was used.
|
|||
|
* var credential = error.credential;
|
|||
|
* if (errorCode === 'auth/account-exists-with-different-credential') {
|
|||
|
* alert('You have signed up with a different provider for that email.');
|
|||
|
* // Handle linking here if your app allows it.
|
|||
|
* } else {
|
|||
|
* console.error(error);
|
|||
|
* }
|
|||
|
* });
|
|||
|
*
|
|||
|
* // Start a sign in process for an unauthenticated user.
|
|||
|
* var provider = new firebase.auth.GithubAuthProvider();
|
|||
|
* provider.addScope('repo');
|
|||
|
* firebase.auth().signInWithRedirect(provider);
|
|||
|
*
|
|||
|
* @example
|
|||
|
* // With popup.
|
|||
|
* var provider = new firebase.auth.GithubAuthProvider();
|
|||
|
* provider.addScope('repo');
|
|||
|
* firebase.auth().signInWithPopup(provider).then(function(result) {
|
|||
|
* // This gives you a GitHub Access Token.
|
|||
|
* var token = result.credential.accessToken;
|
|||
|
* // The signed-in user info.
|
|||
|
* var user = result.user;
|
|||
|
* }).catch(function(error) {
|
|||
|
* // Handle Errors here.
|
|||
|
* var errorCode = error.code;
|
|||
|
* var errorMessage = error.message;
|
|||
|
* // The email of the user's account used.
|
|||
|
* var email = error.email;
|
|||
|
* // The firebase.auth.AuthCredential type that was used.
|
|||
|
* var credential = error.credential;
|
|||
|
* if (errorCode === 'auth/account-exists-with-different-credential') {
|
|||
|
* alert('You have signed up with a different provider for that email.');
|
|||
|
* // Handle linking here if your app allows it.
|
|||
|
* } else {
|
|||
|
* console.error(error);
|
|||
|
* }
|
|||
|
* });
|
|||
|
*
|
|||
|
* @see {@link firebase.auth.Auth#onAuthStateChanged} to receive sign in state
|
|||
|
* changes.
|
|||
|
* @constructor
|
|||
|
* @implements {firebase.auth.AuthProvider}
|
|||
|
*/
|
|||
|
firebase.auth.GithubAuthProvider = function() {};
|
|||
|
|
|||
|
/** @type {string} */
|
|||
|
firebase.auth.GithubAuthProvider.PROVIDER_ID;
|
|||
|
|
|||
|
/**
|
|||
|
* This corresponds to the sign-in method identifier as returned in
|
|||
|
* {@link firebase.auth.Auth#fetchSignInMethodsForEmail}.
|
|||
|
*
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.GithubAuthProvider.GITHUB_SIGN_IN_METHOD;
|
|||
|
|
|||
|
/**
|
|||
|
* @example
|
|||
|
* var cred = firebase.auth.FacebookAuthProvider.credential(
|
|||
|
* // `event` from the Facebook auth.authResponseChange callback.
|
|||
|
* event.authResponse.accessToken
|
|||
|
* );
|
|||
|
*
|
|||
|
* @param {string} token Github access token.
|
|||
|
* @return {!firebase.auth.OAuthCredential} The auth provider credential.
|
|||
|
*/
|
|||
|
firebase.auth.GithubAuthProvider.credential = function(token) {};
|
|||
|
|
|||
|
/** @type {string} */
|
|||
|
firebase.auth.GithubAuthProvider.prototype.providerId;
|
|||
|
|
|||
|
/**
|
|||
|
* @param {string} scope Github OAuth scope.
|
|||
|
* @return {!firebase.auth.AuthProvider} The provider instance itself.
|
|||
|
*/
|
|||
|
firebase.auth.GithubAuthProvider.prototype.addScope = function(scope) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Sets the OAuth custom parameters to pass in a GitHub OAuth request for popup
|
|||
|
* and redirect sign-in operations.
|
|||
|
* Valid parameters include 'allow_signup'.
|
|||
|
* For a detailed list, check the
|
|||
|
* {@link https://developer.github.com/v3/oauth/ GitHub} documentation.
|
|||
|
* Reserved required OAuth 2.0 parameters such as 'client_id', 'redirect_uri',
|
|||
|
* 'scope', 'response_type' and 'state' are not allowed and will be ignored.
|
|||
|
* @param {!Object} customOAuthParameters The custom OAuth parameters to pass
|
|||
|
* in the OAuth request.
|
|||
|
* @return {!firebase.auth.AuthProvider} The provider instance itself.
|
|||
|
*/
|
|||
|
firebase.auth.GithubAuthProvider.prototype.setCustomParameters = function(
|
|||
|
customOAuthParameters
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Google auth provider.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* // Using a redirect.
|
|||
|
* firebase.auth().getRedirectResult().then(function(result) {
|
|||
|
* if (result.credential) {
|
|||
|
* // This gives you a Google Access Token.
|
|||
|
* var token = result.credential.accessToken;
|
|||
|
* }
|
|||
|
* var user = result.user;
|
|||
|
* });
|
|||
|
*
|
|||
|
* // Start a sign in process for an unauthenticated user.
|
|||
|
* var provider = new firebase.auth.GoogleAuthProvider();
|
|||
|
* provider.addScope('profile');
|
|||
|
* provider.addScope('email');
|
|||
|
* firebase.auth().signInWithRedirect(provider);
|
|||
|
*
|
|||
|
* @example
|
|||
|
* // Using a popup.
|
|||
|
* var provider = new firebase.auth.GoogleAuthProvider();
|
|||
|
* provider.addScope('profile');
|
|||
|
* provider.addScope('email');
|
|||
|
* firebase.auth().signInWithPopup(provider).then(function(result) {
|
|||
|
* // This gives you a Google Access Token.
|
|||
|
* var token = result.credential.accessToken;
|
|||
|
* // The signed-in user info.
|
|||
|
* var user = result.user;
|
|||
|
* });
|
|||
|
*
|
|||
|
* @see {@link firebase.auth.Auth#onAuthStateChanged} to receive sign in state
|
|||
|
* changes.
|
|||
|
* @constructor
|
|||
|
* @implements {firebase.auth.AuthProvider}
|
|||
|
*/
|
|||
|
firebase.auth.GoogleAuthProvider = function() {};
|
|||
|
|
|||
|
/** @type {string} */
|
|||
|
firebase.auth.GoogleAuthProvider.PROVIDER_ID;
|
|||
|
|
|||
|
/**
|
|||
|
* This corresponds to the sign-in method identifier as returned in
|
|||
|
* {@link firebase.auth.Auth#fetchSignInMethodsForEmail}.
|
|||
|
*
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.GoogleAuthProvider.GOOGLE_SIGN_IN_METHOD;
|
|||
|
|
|||
|
/**
|
|||
|
* Creates a credential for Google. At least one of ID token and access token
|
|||
|
* is required.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* // `googleUser` from the onsuccess Google Sign In callback.
|
|||
|
* var credential = firebase.auth.GoogleAuthProvider.credential(
|
|||
|
googleUser.getAuthResponse().id_token);
|
|||
|
* firebase.auth().signInWithCredential(credential)
|
|||
|
*
|
|||
|
* @param {?string=} idToken Google ID token.
|
|||
|
* @param {?string=} accessToken Google access token.
|
|||
|
* @return {!firebase.auth.OAuthCredential} The auth provider credential.
|
|||
|
*/
|
|||
|
firebase.auth.GoogleAuthProvider.credential = function(idToken, accessToken) {};
|
|||
|
|
|||
|
/** @type {string} */
|
|||
|
firebase.auth.GoogleAuthProvider.prototype.providerId;
|
|||
|
|
|||
|
/**
|
|||
|
* @param {string} scope Google OAuth scope.
|
|||
|
* @return {!firebase.auth.AuthProvider} The provider instance itself.
|
|||
|
*/
|
|||
|
firebase.auth.GoogleAuthProvider.prototype.addScope = function(scope) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Sets the OAuth custom parameters to pass in a Google OAuth request for popup
|
|||
|
* and redirect sign-in operations.
|
|||
|
* Valid parameters include 'hd', 'hl', 'include_granted_scopes', 'login_hint'
|
|||
|
* and 'prompt'.
|
|||
|
* For a detailed list, check the
|
|||
|
* {@link https://goo.gl/Xo01Jm Google}
|
|||
|
* documentation.
|
|||
|
* Reserved required OAuth 2.0 parameters such as 'client_id', 'redirect_uri',
|
|||
|
* 'scope', 'response_type' and 'state' are not allowed and will be ignored.
|
|||
|
* @param {!Object} customOAuthParameters The custom OAuth parameters to pass
|
|||
|
* in the OAuth request.
|
|||
|
* @return {!firebase.auth.AuthProvider} The provider instance itself.
|
|||
|
*/
|
|||
|
firebase.auth.GoogleAuthProvider.prototype.setCustomParameters = function(
|
|||
|
customOAuthParameters
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Twitter auth provider.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* // Using a redirect.
|
|||
|
* firebase.auth().getRedirectResult().then(function(result) {
|
|||
|
* if (result.credential) {
|
|||
|
* // For accessing the Twitter API.
|
|||
|
* var token = result.credential.accessToken;
|
|||
|
* var secret = result.credential.secret;
|
|||
|
* }
|
|||
|
* var user = result.user;
|
|||
|
* });
|
|||
|
*
|
|||
|
* // Start a sign in process for an unauthenticated user.
|
|||
|
* var provider = new firebase.auth.TwitterAuthProvider();
|
|||
|
* firebase.auth().signInWithRedirect(provider);
|
|||
|
*
|
|||
|
* @example
|
|||
|
* // Using a popup.
|
|||
|
* var provider = new firebase.auth.TwitterAuthProvider();
|
|||
|
* firebase.auth().signInWithPopup(provider).then(function(result) {
|
|||
|
* // For accessing the Twitter API.
|
|||
|
* var token = result.credential.accessToken;
|
|||
|
* var secret = result.credential.secret;
|
|||
|
* // The signed-in user info.
|
|||
|
* var user = result.user;
|
|||
|
* });
|
|||
|
*
|
|||
|
* @see {@link firebase.auth.Auth#onAuthStateChanged} to receive sign in state
|
|||
|
* changes.
|
|||
|
* @constructor
|
|||
|
* @implements {firebase.auth.AuthProvider}
|
|||
|
*/
|
|||
|
firebase.auth.TwitterAuthProvider = function() {};
|
|||
|
|
|||
|
/** @type {string} */
|
|||
|
firebase.auth.TwitterAuthProvider.PROVIDER_ID;
|
|||
|
|
|||
|
/**
|
|||
|
* This corresponds to the sign-in method identifier as returned in
|
|||
|
* {@link firebase.auth.Auth#fetchSignInMethodsForEmail}.
|
|||
|
*
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.TwitterAuthProvider.TWITTER_SIGN_IN_METHOD;
|
|||
|
|
|||
|
/**
|
|||
|
* @param {string} token Twitter access token.
|
|||
|
* @param {string} secret Twitter secret.
|
|||
|
* @return {!firebase.auth.OAuthCredential} The auth provider credential.
|
|||
|
*/
|
|||
|
firebase.auth.TwitterAuthProvider.credential = function(token, secret) {};
|
|||
|
|
|||
|
/** @type {string} */
|
|||
|
firebase.auth.TwitterAuthProvider.prototype.providerId;
|
|||
|
|
|||
|
/**
|
|||
|
* Sets the OAuth custom parameters to pass in a Twitter OAuth request for popup
|
|||
|
* and redirect sign-in operations.
|
|||
|
* Valid parameters include 'lang'.
|
|||
|
* Reserved required OAuth 1.0 parameters such as 'oauth_consumer_key',
|
|||
|
* 'oauth_token', 'oauth_signature', etc are not allowed and will be ignored.
|
|||
|
* @param {!Object} customOAuthParameters The custom OAuth parameters to pass
|
|||
|
* in the OAuth request.
|
|||
|
* @return {!firebase.auth.AuthProvider} The provider instance itself.
|
|||
|
*/
|
|||
|
firebase.auth.TwitterAuthProvider.prototype.setCustomParameters = function(
|
|||
|
customOAuthParameters
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Email and password auth provider implementation.
|
|||
|
*
|
|||
|
* To authenticate: {@link firebase.auth.Auth#createUserWithEmailAndPassword}
|
|||
|
* and {@link firebase.auth.Auth#signInWithEmailAndPassword}.
|
|||
|
*
|
|||
|
* @constructor
|
|||
|
* @implements {firebase.auth.AuthProvider}
|
|||
|
*/
|
|||
|
firebase.auth.EmailAuthProvider = function() {};
|
|||
|
|
|||
|
/** @type {string} */
|
|||
|
firebase.auth.EmailAuthProvider.PROVIDER_ID;
|
|||
|
|
|||
|
/**
|
|||
|
* This corresponds to the sign-in method identifier as returned in
|
|||
|
* {@link firebase.auth.Auth#fetchSignInMethodsForEmail}.
|
|||
|
*
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.EmailAuthProvider.EMAIL_PASSWORD_SIGN_IN_METHOD;
|
|||
|
|
|||
|
/**
|
|||
|
* This corresponds to the sign-in method identifier as returned in
|
|||
|
* {@link firebase.auth.Auth#fetchSignInMethodsForEmail}.
|
|||
|
*
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.EmailAuthProvider.EMAIL_LINK_SIGN_IN_METHOD;
|
|||
|
|
|||
|
/**
|
|||
|
* @example
|
|||
|
* var cred = firebase.auth.EmailAuthProvider.credential(
|
|||
|
* email,
|
|||
|
* password
|
|||
|
* );
|
|||
|
*
|
|||
|
* @param {string} email Email address.
|
|||
|
* @param {string} password User account password.
|
|||
|
* @return {!firebase.auth.AuthCredential} The auth provider credential.
|
|||
|
*/
|
|||
|
firebase.auth.EmailAuthProvider.credential = function(email, password) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Initialize an `EmailAuthProvider` credential using an email and an email link
|
|||
|
* after a sign in with email link operation.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* var cred = firebase.auth.EmailAuthProvider.credentialWithLink(
|
|||
|
* email,
|
|||
|
* emailLink
|
|||
|
* );
|
|||
|
*
|
|||
|
* @param {string} email Email address.
|
|||
|
* @param {string} emailLink Sign-in email link.
|
|||
|
* @return {!firebase.auth.AuthCredential} The auth provider credential.
|
|||
|
*/
|
|||
|
firebase.auth.EmailAuthProvider.credentialWithLink = function(
|
|||
|
email,
|
|||
|
emailLink
|
|||
|
) {};
|
|||
|
|
|||
|
/** @type {string} */
|
|||
|
firebase.auth.EmailAuthProvider.prototype.providerId;
|
|||
|
|
|||
|
/**
|
|||
|
* Phone number auth provider.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* // 'recaptcha-container' is the ID of an element in the DOM.
|
|||
|
* var applicationVerifier = new firebase.auth.RecaptchaVerifier(
|
|||
|
* 'recaptcha-container');
|
|||
|
* var provider = new firebase.auth.PhoneAuthProvider();
|
|||
|
* provider.verifyPhoneNumber('+16505550101', applicationVerifier)
|
|||
|
* .then(function(verificationId) {
|
|||
|
* var verificationCode = window.prompt('Please enter the verification ' +
|
|||
|
* 'code that was sent to your mobile device.');
|
|||
|
* return firebase.auth.PhoneAuthProvider.credential(verificationId,
|
|||
|
* verificationCode);
|
|||
|
* })
|
|||
|
* .then(function(phoneCredential) {
|
|||
|
* return firebase.auth().signInWithCredential(phoneCredential);
|
|||
|
* });
|
|||
|
*
|
|||
|
* @constructor
|
|||
|
* @param {?firebase.auth.Auth=} auth The Firebase Auth instance in which
|
|||
|
* sign-ins should occur. Uses the default Auth instance if unspecified.
|
|||
|
* @implements {firebase.auth.AuthProvider}
|
|||
|
*/
|
|||
|
firebase.auth.PhoneAuthProvider = function(auth) {};
|
|||
|
|
|||
|
/** @type {string} */
|
|||
|
firebase.auth.PhoneAuthProvider.PROVIDER_ID;
|
|||
|
|
|||
|
/**
|
|||
|
* This corresponds to the sign-in method identifier as returned in
|
|||
|
* {@link firebase.auth.Auth#fetchSignInMethodsForEmail}.
|
|||
|
*
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.PhoneAuthProvider.PHONE_SIGN_IN_METHOD;
|
|||
|
|
|||
|
/**
|
|||
|
* Creates a phone auth credential, given the verification ID from
|
|||
|
* {@link firebase.auth.PhoneAuthProvider#verifyPhoneNumber} and the code
|
|||
|
* that was sent to the user's mobile device.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/missing-verification-code</dt>
|
|||
|
* <dd>Thrown if the verification code is missing.</dd>
|
|||
|
* <dt>auth/missing-verification-id</dt>
|
|||
|
* <dd>Thrown if the verification ID is missing.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @param {string} verificationId The verification ID returned from
|
|||
|
* {@link firebase.auth.PhoneAuthProvider#verifyPhoneNumber}.
|
|||
|
* @param {string} verificationCode The verification code sent to the user's
|
|||
|
* mobile device.
|
|||
|
* @return {!firebase.auth.PhoneAuthCredential} The auth provider credential.
|
|||
|
*/
|
|||
|
firebase.auth.PhoneAuthProvider.credential = function(
|
|||
|
verificationId,
|
|||
|
verificationCode
|
|||
|
) {};
|
|||
|
|
|||
|
/** @type {string} */
|
|||
|
firebase.auth.PhoneAuthProvider.prototype.providerId;
|
|||
|
|
|||
|
/**
|
|||
|
* Starts a phone number authentication flow by sending a verification code to
|
|||
|
* the given phone number. Returns an ID that can be passed to
|
|||
|
* {@link firebase.auth.PhoneAuthProvider#credential} to identify this flow.
|
|||
|
*
|
|||
|
* For abuse prevention, this method also requires a
|
|||
|
* {@link firebase.auth.ApplicationVerifier}. The Firebase Auth SDK includes
|
|||
|
* a reCAPTCHA-based implementation, {@link firebase.auth.RecaptchaVerifier}.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/captcha-check-failed</dt>
|
|||
|
* <dd>Thrown if the reCAPTCHA response token was invalid, expired, or if
|
|||
|
* this method was called from a non-whitelisted domain.</dd>
|
|||
|
* <dt>auth/invalid-phone-number</dt>
|
|||
|
* <dd>Thrown if the phone number has an invalid format.</dd>
|
|||
|
* <dt>auth/missing-phone-number</dt>
|
|||
|
* <dd>Thrown if the phone number is missing.</dd>
|
|||
|
* <dt>auth/quota-exceeded</dt>
|
|||
|
* <dd>Thrown if the SMS quota for the Firebase project has been exceeded.</dd>
|
|||
|
* <dt>auth/user-disabled</dt>
|
|||
|
* <dd>Thrown if the user corresponding to the given phone number has been
|
|||
|
* disabled.</dd>
|
|||
|
* <dt>auth/maximum-second-factor-count-exceeded</dt>
|
|||
|
* <dd>Thrown if The maximum allowed number of second factors on a user
|
|||
|
* has been exceeded.</dd>
|
|||
|
* <dt>auth/second-factor-already-in-use</dt>
|
|||
|
* <dd>Thrown if the second factor is already enrolled on this account.</dd>
|
|||
|
* <dt>auth/unsupported-first-factor</dt>
|
|||
|
* <dd>Thrown if the first factor being used to sign in is not supported.</dd>
|
|||
|
* <dt>auth/unverified-email</dt>
|
|||
|
* <dd>Thrown if the email of the account is not verified.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @param {!firebase.auth.PhoneInfoOptions|string} phoneInfoOptions The user's
|
|||
|
* {@link firebase.auth.PhoneInfoOptions}. The phone number should be in
|
|||
|
* E.164 format (e.g. +16505550101).
|
|||
|
* @param {!firebase.auth.ApplicationVerifier} applicationVerifier
|
|||
|
* @return {!firebase.Promise<string>} A Promise for the verification ID.
|
|||
|
*/
|
|||
|
firebase.auth.PhoneAuthProvider.prototype.verifyPhoneNumber = function(
|
|||
|
phoneInfoOptions,
|
|||
|
applicationVerifier
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* A verifier for domain verification and abuse prevention. Currently, the
|
|||
|
* only implementation is {@link firebase.auth.RecaptchaVerifier}.
|
|||
|
* @interface
|
|||
|
*/
|
|||
|
firebase.auth.ApplicationVerifier = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* Identifies the type of application verifier (e.g. "recaptcha").
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.ApplicationVerifier.prototype.type;
|
|||
|
|
|||
|
/**
|
|||
|
* Executes the verification process.
|
|||
|
* @return {!firebase.Promise<string>} A Promise for a token that can be used to
|
|||
|
* assert the validity of a request.
|
|||
|
*/
|
|||
|
firebase.auth.ApplicationVerifier.prototype.verify = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* The interface for asserting ownership of a second factor. This is used to
|
|||
|
* facilitate enrollment of a second factor on an existing user
|
|||
|
* or sign-in of a user who already verified the first factor.
|
|||
|
*
|
|||
|
* @interface
|
|||
|
*/
|
|||
|
firebase.auth.MultiFactorAssertion = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* The identifier of the second factor.
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.MultiFactorAssertion.prototype.factorId;
|
|||
|
|
|||
|
/**
|
|||
|
* The interface for asserting ownership of a phone second factor.
|
|||
|
*
|
|||
|
* @interface
|
|||
|
* @extends {firebase.auth.MultiFactorAssertion}
|
|||
|
*/
|
|||
|
firebase.auth.PhoneMultiFactorAssertion = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* The interface used to initialize a
|
|||
|
* {@link firebase.auth.PhoneMultiFactorAssertion}.
|
|||
|
*
|
|||
|
* @interface
|
|||
|
*/
|
|||
|
firebase.auth.PhoneMultiFactorGenerator = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* The identifier of the phone second factor: `phone`.
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.PhoneMultiFactorGenerator.FACTOR_ID;
|
|||
|
|
|||
|
/**
|
|||
|
* Initializes the {@link firebase.auth.PhoneMultiFactorAssertion} to confirm
|
|||
|
* ownership of the phone second factor.
|
|||
|
*
|
|||
|
* @param {!firebase.auth.PhoneAuthCredential} phoneAuthCredential The phone
|
|||
|
* Auth credential.
|
|||
|
* @return {!firebase.auth.PhoneMultiFactorAssertion}
|
|||
|
*/
|
|||
|
firebase.auth.PhoneMultiFactorGenerator.assertion = function(
|
|||
|
phoneAuthCredential
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* A structure containing the information of a second factor entity.
|
|||
|
*
|
|||
|
* @interface
|
|||
|
*/
|
|||
|
firebase.auth.MultiFactorInfo = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* The multi-factor enrollment ID.
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.MultiFactorInfo.prototype.uid;
|
|||
|
|
|||
|
/**
|
|||
|
* The user friendly name of the current second factor.
|
|||
|
* @type {?string|undefined}
|
|||
|
*/
|
|||
|
firebase.auth.MultiFactorInfo.prototype.displayName;
|
|||
|
|
|||
|
/**
|
|||
|
* The enrollment date of the second factor formatted as a UTC string.
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.MultiFactorInfo.prototype.enrollmentTime;
|
|||
|
|
|||
|
/**
|
|||
|
* The identifier of the second factor.
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.MultiFactorInfo.prototype.factorId;
|
|||
|
|
|||
|
/**
|
|||
|
* The subclass of the `MultiFactorInfo` interface for phone number second
|
|||
|
* factors. The factorId of this second factor is
|
|||
|
* {@link firebase.auth.PhoneMultiFactorGenerator.FACTOR_ID}.
|
|||
|
*
|
|||
|
* @interface
|
|||
|
* @extends {firebase.auth.MultiFactorInfo}
|
|||
|
*/
|
|||
|
firebase.auth.PhoneMultiFactorInfo = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* The phone number associated with the current second factor.
|
|||
|
* @type {string}
|
|||
|
*/
|
|||
|
firebase.auth.PhoneMultiFactorInfo.prototype.phoneNumber;
|
|||
|
|
|||
|
/**
|
|||
|
* The phone info options for single-factor sign-in. Only phone number is
|
|||
|
* required.
|
|||
|
*
|
|||
|
* @typedef {{
|
|||
|
* phoneNumber: string
|
|||
|
* }}
|
|||
|
*/
|
|||
|
firebase.auth.PhoneSingleFactorInfoOptions;
|
|||
|
|
|||
|
/**
|
|||
|
* The phone info options for multi-factor enrollment. Phone number and
|
|||
|
* multi-factor session are required.
|
|||
|
*
|
|||
|
* @typedef {{
|
|||
|
* phoneNumber: string,
|
|||
|
* session: !firebase.auth.MultiFactorSession
|
|||
|
* }}
|
|||
|
*/
|
|||
|
firebase.auth.PhoneMultiFactorEnrollInfoOptions;
|
|||
|
|
|||
|
/**
|
|||
|
* The phone info options for multi-factor sign-in. Either multi-factor hint or
|
|||
|
* multi-factor UID and multi-factor session are required.
|
|||
|
*
|
|||
|
* @typedef {{
|
|||
|
* multiFactorHint: !firebase.auth.MultiFactorInfo,
|
|||
|
* session: !firebase.auth.MultiFactorSession
|
|||
|
* }|{
|
|||
|
* multiFactorUid: string,
|
|||
|
* session: !firebase.auth.MultiFactorSession
|
|||
|
* }}
|
|||
|
*/
|
|||
|
firebase.auth.PhoneMultiFactorSignInInfoOptions;
|
|||
|
|
|||
|
/**
|
|||
|
* The information required to verify the ownership of a phone number. The
|
|||
|
* information that's required depends on whether you are doing single-factor
|
|||
|
* sign-in, multi-factor enrollment or multi-factor sign-in.
|
|||
|
*
|
|||
|
* @typedef {
|
|||
|
* !firebase.auth.PhoneSingleFactorInfoOptions|
|
|||
|
* !firebase.auth.PhoneMultiFactorEnrollInfoOptions|
|
|||
|
* !firebase.auth.PhoneMultiFactorSignInInfoOptions
|
|||
|
* }
|
|||
|
*/
|
|||
|
firebase.auth.PhoneInfoOptions;
|
|||
|
|
|||
|
/**
|
|||
|
* The interface used to facilitate recovery from
|
|||
|
* {@link firebase.auth.MultiFactorError} when a user needs to provide a second
|
|||
|
* factor to sign in.
|
|||
|
*
|
|||
|
* @example
|
|||
|
* ```javascript
|
|||
|
* firebase.auth().signInWithEmailAndPassword()
|
|||
|
* .then(function(result) {
|
|||
|
* // User signed in. No 2nd factor challenge is needed.
|
|||
|
* })
|
|||
|
* .catch(function(error) {
|
|||
|
* if (error.code == 'auth/multi-factor-auth-required') {
|
|||
|
* var resolver = error.resolver;
|
|||
|
* // Show UI to let user select second factor.
|
|||
|
* var multiFactorHints = resolver.hints;
|
|||
|
* } else {
|
|||
|
* // Handle other errors.
|
|||
|
* }
|
|||
|
* });
|
|||
|
*
|
|||
|
* // The enrolled second factors that can be used to complete
|
|||
|
* // sign-in are returned in the `MultiFactorResolver.hints` list.
|
|||
|
* // UI needs to be presented to allow the user to select a second factor
|
|||
|
* // from that list.
|
|||
|
*
|
|||
|
* var selectedHint = // ; selected from multiFactorHints
|
|||
|
* var phoneAuthProvider = new firebase.auth.PhoneAuthProvider();
|
|||
|
* var phoneInfoOptions = {
|
|||
|
* multiFactorHint: selectedHint,
|
|||
|
* session: resolver.session
|
|||
|
* };
|
|||
|
* phoneAuthProvider.verifyPhoneNumber(
|
|||
|
* phoneInfoOptions,
|
|||
|
* appVerifier
|
|||
|
* ).then(function(verificationId) {
|
|||
|
* // store verificationID and show UI to let user enter verification code.
|
|||
|
* });
|
|||
|
*
|
|||
|
* // UI to enter verification code and continue.
|
|||
|
* // Continue button click handler
|
|||
|
* var phoneAuthCredential =
|
|||
|
* firebase.auth.PhoneAuthProvider.credential(
|
|||
|
* verificationId, verificationCode);
|
|||
|
* var multiFactorAssertion =
|
|||
|
* firebase.auth.PhoneMultiFactorGenerator.assertion(phoneAuthCredential);
|
|||
|
* resolver.resolveSignIn(multiFactorAssertion)
|
|||
|
* .then(function(userCredential) {
|
|||
|
* // User signed in.
|
|||
|
* });
|
|||
|
* ```
|
|||
|
* @interface
|
|||
|
*/
|
|||
|
firebase.auth.MultiFactorResolver = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* The Auth instance used to sign in with the first factor.
|
|||
|
* @type {!firebase.auth.Auth}
|
|||
|
*/
|
|||
|
firebase.auth.MultiFactorResolver.prototype.auth;
|
|||
|
|
|||
|
/**
|
|||
|
* The session identifier for the current sign-in flow, which can be used
|
|||
|
* to complete the second factor sign-in.
|
|||
|
* @type {!firebase.auth.MultiFactorSession}
|
|||
|
*/
|
|||
|
firebase.auth.MultiFactorResolver.prototype.session;
|
|||
|
|
|||
|
/**
|
|||
|
* The list of hints for the second factors needed to complete the sign-in
|
|||
|
* for the current session.
|
|||
|
* @type {!Array<!firebase.auth.MultiFactorInfo>}
|
|||
|
*/
|
|||
|
firebase.auth.MultiFactorResolver.prototype.hints;
|
|||
|
|
|||
|
/**
|
|||
|
* A helper function to help users complete sign in with a second factor
|
|||
|
* using an {@link firebase.auth.MultiFactorAssertion} confirming the user
|
|||
|
* successfully completed the second factor challenge.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/invalid-verification-code</dt>
|
|||
|
* <dd>Thrown if the verification code is not valid.</dd>
|
|||
|
* <dt>auth/missing-verification-code</dt>
|
|||
|
* <dd>Thrown if the verification code is missing.</dd>
|
|||
|
* <dt>auth/invalid-verification-id</dt>
|
|||
|
* <dd>Thrown if the credential is a
|
|||
|
* {@link firebase.auth.PhoneAuthProvider.credential} and the verification
|
|||
|
* ID of the credential is not valid.</dd>
|
|||
|
* <dt>auth/missing-verification-id</dt>
|
|||
|
* <dd>Thrown if the verification ID is missing.</dd>
|
|||
|
* <dt>auth/code-expired</dt>
|
|||
|
* <dd>Thrown if the verification code has expired.</dd>
|
|||
|
* <dt>auth/invalid-multi-factor-session</dt>
|
|||
|
* <dd>Thrown if the request does not contain a valid proof of first factor
|
|||
|
* successful sign-in.</dd>
|
|||
|
* <dt>auth/missing-multi-factor-session</dt>
|
|||
|
* <dd>Thrown if The request is missing proof of first factor successful
|
|||
|
* sign-in.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @param {!firebase.auth.MultiFactorAssertion} assertion The multi-factor
|
|||
|
* assertion to resolve sign-in with.
|
|||
|
* @return {!firebase.Promise<!firebase.auth.UserCredential>} The promise that
|
|||
|
* resolves with the user credential object.
|
|||
|
*/
|
|||
|
firebase.auth.MultiFactorResolver.prototype.resolveSignIn = function(
|
|||
|
assertion
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* The multi-factor session object used for enrolling a second factor on a
|
|||
|
* user or helping sign in an enrolled user with a second factor.
|
|||
|
*
|
|||
|
* @interface
|
|||
|
*/
|
|||
|
firebase.auth.MultiFactorSession = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* This is the interface that defines the multi-factor related properties and
|
|||
|
* operations pertaining to a {@link firebase.User}.
|
|||
|
*
|
|||
|
* @interface
|
|||
|
*/
|
|||
|
firebase.User.MultiFactorUser = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* Returns a list of the user's enrolled second factors.
|
|||
|
* @type {!Array<!firebase.auth.MultiFactorInfo>}
|
|||
|
*/
|
|||
|
firebase.User.MultiFactorUser.prototype.enrolledFactors;
|
|||
|
|
|||
|
/**
|
|||
|
* Enrolls a second factor as identified by the
|
|||
|
* {@link firebase.auth.MultiFactorAssertion} for the current user.
|
|||
|
* On resolution, the user tokens are updated to reflect the change in the
|
|||
|
* JWT payload.
|
|||
|
* Accepts an additional display name parameter used to identify the second
|
|||
|
* factor to the end user.
|
|||
|
* Recent re-authentication is required for this operation to succeed.
|
|||
|
* On successful enrollment, existing Firebase sessions (refresh tokens) are
|
|||
|
* revoked. When a new factor is enrolled, an email notification is sent
|
|||
|
* to the user’s email.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/invalid-verification-code</dt>
|
|||
|
* <dd>Thrown if the verification code is not valid.</dd>
|
|||
|
* <dt>auth/missing-verification-code</dt>
|
|||
|
* <dd>Thrown if the verification code is missing.</dd>
|
|||
|
* <dt>auth/invalid-verification-id</dt>
|
|||
|
* <dd>Thrown if the credential is a
|
|||
|
* {@link firebase.auth.PhoneAuthProvider.credential} and the verification
|
|||
|
* ID of the credential is not valid.</dd>
|
|||
|
* <dt>auth/missing-verification-id</dt>
|
|||
|
* <dd>Thrown if the verification ID is missing.</dd>
|
|||
|
* <dt>auth/code-expired</dt>
|
|||
|
* <dd>Thrown if the verification code has expired.</dd>
|
|||
|
* <dt>auth/maximum-second-factor-count-exceeded</dt>
|
|||
|
* <dd>Thrown if The maximum allowed number of second factors on a user
|
|||
|
* has been exceeded.</dd>
|
|||
|
* <dt>auth/second-factor-already-in-use</dt>
|
|||
|
* <dd>Thrown if the second factor is already enrolled on this account.</dd>
|
|||
|
* <dt>auth/unsupported-first-factor</dt>
|
|||
|
* <dd>Thrown if the first factor being used to sign in is not supported.</dd>
|
|||
|
* <dt>auth/unverified-email</dt>
|
|||
|
* <dd>Thrown if the email of the account is not verified.</dd>
|
|||
|
* <dt>auth/requires-recent-login</dt>
|
|||
|
* <dd>Thrown if the user's last sign-in time does not meet the security
|
|||
|
* threshold. Use {@link firebase.User.reauthenticateWithCredential} to
|
|||
|
* resolve.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @example
|
|||
|
* ```javascript
|
|||
|
* firebase.auth().currentUser.multiFactor.getSession()
|
|||
|
* .then(function(multiFactorSession) {
|
|||
|
* // Send verification code
|
|||
|
* var phoneAuthProvider = new firebase.auth.PhoneAuthProvider();
|
|||
|
* var phoneInfoOptions = {
|
|||
|
* phoneNumber: phoneNumber,
|
|||
|
* session: multiFactorSession
|
|||
|
* };
|
|||
|
* return phoneAuthProvider.verifyPhoneNumber(
|
|||
|
* phoneInfoOptions, appVerifier);
|
|||
|
* }).then(function(verificationId) {
|
|||
|
* // Store verificationID and show UI to let user enter verification
|
|||
|
* // code.
|
|||
|
* });
|
|||
|
*
|
|||
|
* var phoneAuthCredential =
|
|||
|
* firebase.auth.PhoneAuthProvider.credential(
|
|||
|
* verificationId, verificationCode);
|
|||
|
* var multiFactorAssertion =
|
|||
|
* firebase.auth.PhoneMultiFactorGenerator.assertion(phoneAuthCredential);
|
|||
|
* firebase.auth().currentUser.multiFactor.enroll(multiFactorAssertion)
|
|||
|
* .then(function() {
|
|||
|
* // Second factor enrolled.
|
|||
|
* });
|
|||
|
* ```
|
|||
|
*
|
|||
|
* @param {!firebase.auth.MultiFactorAssertion} assertion The multi-factor
|
|||
|
* assertion to enroll with.
|
|||
|
* @param {?string=} displayName The display name of the second factor.
|
|||
|
* @return {!firebase.Promise<void>}
|
|||
|
*/
|
|||
|
firebase.User.MultiFactorUser.prototype.enroll = function(
|
|||
|
assertion,
|
|||
|
displayName
|
|||
|
) {};
|
|||
|
|
|||
|
/**
|
|||
|
* Returns the session identifier for a second factor enrollment operation.
|
|||
|
* This is used to identify the current user trying to enroll a second factor.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/user-token-expired</dt>
|
|||
|
* <dd>Thrown if the token of the user is expired.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @return {!firebase.Promise<!firebase.auth.MultiFactorSession>} The promise
|
|||
|
* that resolves with the {@link firebase.auth.MultiFactorSession}.
|
|||
|
*/
|
|||
|
firebase.User.MultiFactorUser.prototype.getSession = function() {};
|
|||
|
|
|||
|
/**
|
|||
|
* Unenrolls the specified second factor. To specify the factor to remove, pass
|
|||
|
* a {@link firebase.auth.MultiFactorInfo} object
|
|||
|
* (retrieved from <code>enrolledFactors()</code>)
|
|||
|
* or the factor's UID string.
|
|||
|
* Sessions are not revoked when the account is downgraded. An email
|
|||
|
* notification is likely to be sent to the user notifying them of the change.
|
|||
|
* Recent re-authentication is required for this operation to succeed.
|
|||
|
* When an existing factor is unenrolled, an email notification is sent to the
|
|||
|
* user’s email.
|
|||
|
*
|
|||
|
* <h4>Error Codes</h4>
|
|||
|
* <dl>
|
|||
|
* <dt>auth/multi-factor-info-not-found</dt>
|
|||
|
* <dd>Thrown if the user does not have a second factor matching the
|
|||
|
* identifier provided.</dd>
|
|||
|
* <dt>auth/requires-recent-login</dt>
|
|||
|
* <dd>Thrown if the user's last sign-in time does not meet the security
|
|||
|
* threshold. Use {@link firebase.User.reauthenticateWithCredential} to
|
|||
|
* resolve.</dd>
|
|||
|
* </dl>
|
|||
|
*
|
|||
|
* @example
|
|||
|
* ```javascript
|
|||
|
* var options = firebase.auth().currentUser.multiFactor.enrolledFactors;
|
|||
|
* // Present user the option to unenroll.
|
|||
|
* return firebase.auth().currentUser.multiFactor.unenroll(options[i])
|
|||
|
* .then(function() {
|
|||
|
* // User successfully unenrolled selected factor.
|
|||
|
* }).catch(function(error) {
|
|||
|
* // Handler error.
|
|||
|
* });
|
|||
|
* ```
|
|||
|
*
|
|||
|
* @param {!firebase.auth.MultiFactorInfo|string} option The multi-factor
|
|||
|
* option to unenroll.
|
|||
|
* @return {!firebase.Promise<void>}
|
|||
|
*/
|
|||
|
firebase.User.MultiFactorUser.prototype.unenroll = function(option) {};
|