/** * @flow * Instance ID representation wrapper */ import ModuleBase from '../../utils/ModuleBase'; import { getNativeModule } from '../../utils/native'; import type App from '../core/app'; export const NAMESPACE = 'iid'; export const MODULE_NAME = 'RNFirebaseInstanceId'; export default class InstanceId extends ModuleBase { constructor(app: App) { super(app, { hasShards: false, moduleName: MODULE_NAME, multiApp: false, namespace: NAMESPACE, }); } /** * Get the current Instance ID. * * @returns {*} */ get(): Promise { return getNativeModule(this).get(); } /** * Delete the current Instance ID. * * @returns {*} */ delete(): Promise { return getNativeModule(this).delete(); } /** * Get a token that authorizes an Entity to perform an action on behalf * of the application identified by Instance ID. * * @param authorizedEntity * @param scope * @returns {Promise} */ getToken(authorizedEntity?: string, scope?: string): Promise { return getNativeModule(this).getToken( authorizedEntity || this.app.options.messagingSenderId, scope || '*' ); } /** * Revokes access to a scope (action) for an entity previously authorized by getToken(). * * @param authorizedEntity * @param scope * @returns {Promise} */ deleteToken(authorizedEntity?: string, scope?: string): Promise { return getNativeModule(this).deleteToken( authorizedEntity || this.app.options.messagingSenderId, scope || '*' ); } } export const statics = {};