本文整理汇总了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;
示例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;
});
示例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
}[] = [];
示例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[] = [];
示例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,
示例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;
示例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);
示例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;
示例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();
示例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,