當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript firebase-functions.region函數代碼示例

本文整理匯總了TypeScript中firebase-functions.region函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript region函數的具體用法?TypeScript region怎麽用?TypeScript region使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了region函數的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: require

const axios = require('axios');
const moment = require('moment');
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';

const db = admin.firestore();

const social = functions.region('europe-west1').https.onRequest(async (req, res) => {

  const jobs: Promise<any>[] = [];

  // Query all open Articles from Firestore
  const articlesSnapshot = await db.collection('articles').get();

  // No open Articles?
  if (articlesSnapshot.empty) {
    console.log('No matching documents found');
  } else {

    // Loop over open Articles
    articlesSnapshot.forEach(doc => {
      const id = doc.id;

      // Marked as instant or scheduled post?
      if (doc.data().publicationStatus === 1 ||
        (doc.data().publicationAt.seconds < moment().unix() && doc.data().publicationStatus === 2)
      ) {

        // Post on Facebook
        if (doc.data().meta.facebook.scheduled) {
          const message = doc.data().meta.facebook.description;
開發者ID:Meistercoach83,項目名稱:sfw,代碼行數:31,代碼來源:social.ts

示例2: require

import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
admin.initializeApp();
const db = admin.firestore();

const moment = require('moment');
moment.locale('de');

export const matchesWithoutResult = functions
  .region('europe-west1')
  .runWith({ memory: '512MB', timeoutSeconds: 12 }).pubsub

  .schedule('0 5 * * *').onRun(async context => {

    const now = admin.firestore.Timestamp.now();

    const matchesQuery = db.collection('matches').where('matchEndDate', '<=', now);
    const matchesSnapshot = await matchesQuery.get();
    console.log(matchesSnapshot.docs[0].data());
    return true;

  });
開發者ID:Meistercoach83,項目名稱:sfw,代碼行數:22,代碼來源:matches-without-result-reminder.ts

示例3: require

import * as admin from 'firebase-admin';
import * as functions from 'firebase-functions';
const moment = require('moment');
import { birthdayWishes } from './birthday-wishes';

moment.locale('de');

// Sengrid
const sgMail = require('@sendgrid/mail');
const SENDGRID_API_KEY = functions.config().sendgrid.key;
sgMail.setApiKey(SENDGRID_API_KEY);

const db = admin.firestore();

const birthdayReminder = functions
  .region('europe-west1')
  .runWith({ memory: '512MB', timeoutSeconds: 12 }).pubsub

  .schedule('0 5 * * *').onRun(async context => {

    try {

      const monthDay = moment().format('MM-DD');
      const mailArray: any = [];

      const recipients: {
        email: string,
        firstName: string,
        lastName: string,
        age: number
      }[] = [];
開發者ID:Meistercoach83,項目名稱:sfw,代碼行數:31,代碼來源:birthday-reminder.ts

示例4: require

import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
const moment = require('moment');
const { google } = require('googleapis');

const GOOGLE_API_KEY = functions.config().google.calendar.key;
const getCalendar = google.calendar({ version: 'v3', auth: GOOGLE_API_KEY });

const db = admin.firestore();

const getGoogleCalendars = functions
  .region('europe-west1')
  .runWith({ memory: '1GB', timeoutSeconds: 25 })
  .https.onRequest(async (req, res) => {

    res.set('Access-Control-Allow-Origin', '*');

    if (req.method === 'OPTIONS') {
      res.header('Access-Control-Allow-Headers', 'Authorization, content-type');
      res.header('Access-Control-Max-Age', '7200');
    }

    const timeMin = req.body.data && req.body.data.startDate ? req.body.data.startDate : moment().startOf('month').toISOString();
    const timeMax = req.body.data && req.body.data.endDate ? req.body.data.endDate : moment().endOf('month').toISOString();

    console.log(timeMin);
    console.log(timeMax);

    try {
      const eventList: any[] = [];
開發者ID:Meistercoach83,項目名稱:sfw,代碼行數:30,代碼來源:get-calendar.ts

示例5: require

const { google } = require('googleapis');
const calendar = google.calendar('v3');
import * as functions from 'firebase-functions';

const ERROR_RESPONSE = {
  status: '500',
  message: 'There was an error adding an event to your Google calendar'
};
const TIME_ZONE = 'EST';

const updateCalendarEvent = functions.region('europe-west1')
  .runWith({ memory: '1GB', timeoutSeconds: 25 })
  .https.onRequest(async (request, response) => {

    console.log(request.body);

    const event = {
      eventName: request.body.eventName,
      description: request.body.description,
      startTime: request.body.startTime,
      endTime: request.body.endTime
    };

    const auth = await google.auth.getClient({ scopes: ['https://www.googleapis.com/auth/calendar'] });

    try {
      const data = await calendar.events.patch({
        auth: auth,
        calendarId: 'primary',
        resource: {
          'summary': event.eventName,
開發者ID:Meistercoach83,項目名稱:sfw,代碼行數:31,代碼來源:update-calendar-event.ts

示例6:

'use strict';

// firebase functions:config:set bitLy.access_token=XXXXXXXXXXXXX

import * as functions from 'firebase-functions';
// const BitLyClient = require('bitly');

// const bitLy = BitLyClient(functions.config().bitLy.access_token);

// Shorten URL written to /links/{linkID}.
const bitLyShortenLink = functions
  .region('europe-west1')
  .runWith({ memory: '128MB', timeoutSeconds: 5 })
  .database.ref('/links/{linkID}').onCreate(async (snap) => {
    const originalUrl = snap.val();
    // const response = await bitLy.shorten(originalUrl);
    return snap.ref.set({
      original: originalUrl,
      // short: response.data.url,
    });
  });

module.exports = bitLyShortenLink;
開發者ID:Meistercoach83,項目名稱:sfw,代碼行數:23,代碼來源:bitly-shortener.ts

示例7: require

import * as admin from 'firebase-admin';
import * as functions from 'firebase-functions';
const db = admin.firestore();
const request = require('request-promise');

const facebook = functions.region('europe-west1').https.onRequest((req, res) => {
  // return cors(req, res, () => {

  // General, Page & Access Data
  const articleId = req.body.id;
  const pageId = '1188810447962053';
  const access_token = 'EAAGI2Mtrq3MBAEIpdKFyZA1kQepUgE61r6ZCRboIvStHik1FXVHTyZCHUZA62pqUjwYgg3wOvcOfQMCrpjnElMdBwEYOcDRYEAYfzoyt1e2Jo4hQZCN2pLSGL1Ed2pZBT4PGB8K84Ag7NHD2dZA0Yl4f5VEvV1kPO0lBTZCjZBGCdYhMAIXZC0SGlNBDZCFEh4QSBQZD';

  // Data for facebook Post
  const postMessage = req.body.message;

  // 1 - Post on Facebook (Post to Graph API)
  // 2 - Update Firestore data on success & send response
  // 3 - Send error response on fail
  const postToFacebook = {
    method: 'POST',
    uri: `https://graph.facebook.com/${pageId}/feed`,
    qs: {
      access_token: access_token,
      message: postMessage
    }
  };

  return request(postToFacebook)
    .then((response) => {
      const result = JSON.parse(response);
開發者ID:Meistercoach83,項目名稱:sfw,代碼行數:31,代碼來源:facebook.ts

示例8: require

import * as functions from 'firebase-functions';

const SENDGRID_API_KEY = functions.config().sendgrid.key;

const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(SENDGRID_API_KEY);

const userCreated = functions
  .region('europe-west1')
  .runWith({ memory: '512MB', timeoutSeconds: 15 })
  .auth.user()
  .onCreate((event: any) => {

    const msg = {
      to: 'Thomas.handle@gmail.com',
      from: 'admin@sfwinterbach.com',
      subject: 'Neuer Benutzer',
      templateId: '758f452a-aa4d-4664-8088-5a5ce2a814ac',
      substitutionWrappers: ['{{', '}}'],
      substitutions: {
        email: event.email ? event.email : event.displayName,
        name: 'Thomas',
        siteName: 'sfwinterbach.com'
      }
    };

    return sgMail.send(msg);
  });

module.exports = userCreated;
開發者ID:Meistercoach83,項目名稱:sfw,代碼行數:30,代碼來源:user-created.ts

示例9: join

import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
import * as fs from 'fs-extra';
import { tmpdir } from 'os';
import { join, dirname } from 'path';

const mediaDeleted = functions
  .region('europe-west1')
  .runWith({ memory: '512MB', timeoutSeconds: 15 })
  .firestore.document('files/{mediaItemId}').onDelete(async (snap) => {

    console.log(snap.data());

    const data = snap.data() || {};
    const workingDir = join(tmpdir(), 'thumbs');

    await fs.ensureDir(workingDir);

    let path = '/';
    if ('assignedObjects' in data) {
      data.assignedObjects.forEach((key: string) => {
        path = path + '/' + key;
      });
    }

    const galleriesSnapshot = await admin.firestore().collection('galleries')
      .where('assignedMediaItems', 'array-contains', data.id)
      .get();

    galleriesSnapshot.docs.forEach(async (doc) => {
      const galleryData = doc.data();
開發者ID:Meistercoach83,項目名稱:sfw,代碼行數:31,代碼來源:media-deleted.ts

示例10: require

import * as functions from 'firebase-functions';

const twitter = functions.region('europe-west1').https.onRequest((req, res) => {
  // return cors(req, res, () => {

  const data = {
    id: req.body.id,
    message: req.body.message
  };

  console.log(data.id);

  res.send('success');
  // })
});

module.exports = twitter;

/*

import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';

const Twit = require("twit");
const express = require("express");
admin.initializeApp();

const expressRouter = new express.Router();
const config = {
    consumer_key:         functions.config().twitter.consumer.key,
    consumer_secret:      functions.config().twitter.consumer.secret,
開發者ID:Meistercoach83,項目名稱:sfw,代碼行數:31,代碼來源:twitter.ts


注:本文中的firebase-functions.region函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。