Skip to content

Instantly share code, notes, and snippets.

View PetkevichPavel's full-sized avatar
💭
🚀 Never Stop 🚀

Pavel Petkevich PetkevichPavel

💭
🚀 Never Stop 🚀
View GitHub Profile
@PetkevichPavel
PetkevichPavel / index.ts
Last active August 24, 2019 08:14
Cloud function: common class.
"use strict";
import functions = require("firebase-functions");
import admin = require("firebase-admin");
import * as rcFunctions from './RemoteConfigFunctions';
import { RemoteConfigObj } from "./RemoteConfigObj";
import * as secretProps from '../SecretProperties';
const request = require('request');
const STATUS_CODE_OK = 200
Object.defineProperty(exports, "__esModule", { value: true });
admin.initializeApp({
@PetkevichPavel
PetkevichPavel / RemoteConfigFunctions.ts
Last active August 24, 2019 08:06
Cloud function: class with helpful functions.
import { PlatformSettingsObj, PushTopics, Platform } from './RemoteConfigObj';
import { SCOPES } from '../SecretProperties';
const { google } = require('googleapis');
/**
* This method is for requesting an access token.
* @param service - is the service account data.
*/
export function getAccessToken(service: any) {
return new Promise(function (resolve, reject) {
const jwtClient = new google.auth.JWT(
@PetkevichPavel
PetkevichPavel / SecretPropertie.ts
Created August 24, 2019 08:00
Cloud Function: secret properties for functions.
export const DB_URL = "https://projec-name.firebaseio.com"
export const SCOPES = ["https://www.googleapis.com/auth/firebase.remoteconfig"];
export const FB_URL_RC =
"https://firebaseremoteconfig.googleapis.com/v1/projects/projec-name/remoteConfig"
export const service: any = {
"type": "service_account",
"project_id": "********************",
"private_key_id": "********************",
"private_key": "********************",
"client_email": "********************",
@PetkevichPavel
PetkevichPavel / RemoteConfigObj.ts
Created August 21, 2019 22:09
Cloud Function: The class with all the objects which we will need in the future parsing remote config json.
export interface RemoteConfigObj {
parameters: Parameter;
version: Version;
}
export interface Parameter {
platform_setting: PlatformSettingsRC
}
export interface PlatformSettingsRC {
defaultValue: DefValue
}