Skip to content

Commit

Permalink
feat(firebase): add firebase plugin (#914)
Browse files Browse the repository at this point in the history
closes #608
  • Loading branch information
ihadeed committed Jan 20, 2017
1 parent 0ec46b0 commit 8e98481
Show file tree
Hide file tree
Showing 2 changed files with 196 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ import { FileChooser } from './plugins/file-chooser';
import { FileOpener } from './plugins/file-opener';
import { FilePath } from './plugins/filepath';
import { Transfer } from './plugins/filetransfer';
import { Firebase } from './plugins/firebase';
import { Flashlight } from './plugins/flashlight';
import { Geofence } from './plugins/geofence';
import { Geolocation } from './plugins/geolocation';
Expand Down Expand Up @@ -156,6 +157,7 @@ export * from './plugins/file';
export * from './plugins/file-chooser';
export * from './plugins/file-opener';
export * from './plugins/filetransfer';
export * from './plugins/firebase';
export * from './plugins/filepath';
export * from './plugins/flashlight';
export * from './plugins/geofence';
Expand Down Expand Up @@ -270,6 +272,7 @@ window['IonicNative'] = {
FileOpener,
FilePath,
Flashlight,
Firebase,
Geofence,
Geolocation,
Globalization,
Expand Down
193 changes: 193 additions & 0 deletions src/plugins/firebase.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,193 @@
import { Plugin, Cordova } from './plugin';
import { Observable } from 'rxjs/Observable'

/**
* @name Firebase
* @description
*
* @usage
* ```
* import { Firebase } from 'ionic-native';
*
*
* ```
*/
@Plugin({
pluginName: 'Firebase',
plugin: 'cordova-plugin-firebase',
pluginRef: 'FirebasePlugin',
repo: 'https://github.com/arnesson/cordova-plugin-firebase'
})
export class Firebase {

/**
* Get the device token
* @return {Promise<any>}
*/
@Cordova()
static getToken(): Promise<any> { return; }

/**
* Get notified when a token is refreshed
* @return {Observable<any>}
*/
@Cordova({
observable: true
})
static onTokenRefresh(): Observable<any> { return; }

/**
* Get notified when the user opens a notification
* @return {Observable<any>}
*/
@Cordova({
observable: true
})
static onNotificationOpen(): Observable<any> { return; }

/**
* Grant permission to recieve push notifications
* @return {Promise<any>}
*/
@Cordova({
platforms: ['iOS']
})
static grantPermission(): Promise<any> { return; }

/**
* Set icon badge number. Set to 0 to clear the badge.
* @param badgeNumber {number}
* @return {Promise<any>}
*/
@Cordova()
static setBadgeNumber(badgeNumber: number): Promise<any> { return; }

/**
* Get icon badge number
* @return {Promise<any>}
*/
@Cordova()
static getBadgeNumber(): Promise<any> { return; }

/**
* Subscribe to a topic
* @param topic {string}
* @return {Promise<any>}
*/
@Cordova()
static subscribe(topic: string): Promise<any> { return; }

/**
* Unsubscribe from a topic
* @param topic {string}
* @return {Promise<any>}
*/
@Cordova()
static unsubscribe(topic: string): Promise<any> { return; }

/**
* Log an event using Analytics
* @param type {string}
* @param data {Object}
* @return {Promise<any>}
*/
@Cordova()
static logEvent(type: string, data: any): Promise<any> { return; }

/**
* Set a user id for use in Analytics
* @param userId {string}
* @return {Promise<any>}
*/
@Cordova()
static setUserId(userId: string): Promise<any> { return; }

/**
* Set a user property for use in Analytics
* @param name {string}
* @param value {string}
* @return {Promise<any>}
*/
@Cordova()
static setUserProperty(name: string, value: string): Promise<any> { return; }

/**
* Fetch Remote Config parameter values for your app
* @param cacheExpirationSeconds
* @return {Promise<any>}
*/
@Cordova({
platforms: ['Android'],
successIndex: 1,
errorIndex: 2
})
static fetch(cacheExpirationSeconds?: number): Promise<any> { return; }

/**
* Activate the Remote Config fetched config
* @return {Promise<any>}
*/
@Cordova({
platforms: ['Android']
})
static activateFetched(): Promise<any> { return; }

/**
* Retrieve a Remote Config value
* @param key {string}
* @param namespace {string}
* @return {Promise<any>}
*/
@Cordova({
platforms: ['Android'],
successIndex: 2,
errorIndex: 3
})
static getValue(key: string, namespace?: string): Promise<any> { return; }

/**
* Retrieve a Remote Config byte array
* @param key {string}
* @param namespace {string}
* @return {Promise<any>}
*/
@Cordova({
platforms: ['Android'],
successIndex: 2,
errorIndex: 3
})
static getByteArray(key: string, namespace?: string): Promise<any> { return; }

/**
* Get the current state of the FirebaseRemoteConfig singleton object
* @return {Promise<any>}
*/
@Cordova({
platforms: ['Android']
})
static getInfo(): Promise<any> { return; }

/**
* Change the settings for the FirebaseRemoteConfig object's operations
* @param settings {Object}
* @return {Promise<any>}
*/
@Cordova({
platforms: ['Android']
})
static setConfigSettings(settings: any): Promise<any> { return; }

/**
* Set defaults in the Remote Config
* @param defaults {Object}
* @param namespace {string}
* @return {Promise<any>}
*/
@Cordova({
platforms: ['Android'],
successIndex: 2,
errorIndex: 3
})
static setDefaults(defaults: any, namespace: string): Promise<any> { return; }

}

0 comments on commit 8e98481

Please sign in to comment.