facebook twitter hatena line email

Gcp/Firebase/CloudFunctions/外部ライブラリ

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

外部ライブラリインストール

momentライブラリをインストール

cd functions
npm install moment
npm install moment-timezone

functions/package.json にmomentが追加されてることを確認

 "dependencies": {
   "firebase-admin": "^8.0.0",
   "firebase-functions": "^3.1.0",
   "moment": "^2.24.0"
   "moment-timezone": "^0.5.26"
 },

index.js

// const moment = require("moment");  // tzなし
const moment = require("moment-timezone");
moment.tz.setDefault("Asia/Tokyo");
console.log("format=" + moment().format()); // format=2019-08-24T09:19:10+00:00
console.log("YYYY-MM-DD=" + moment().format("YYYY-MM-DD"));           // YYYY-MM-DD=2019-08-24
console.log("YYYY-MM-DD HH=" + moment().format("YYYY-MM-DD HH:mm:ssZ")); // YYYY-MM-DD HH=2019-08-24 09:19:10+00:00
console.log("unix format=" + moment().unix()); // unix format=1566638922
console.log(moment().add('months', 1).format("YYYY/MM/DD HH:mm:ss")); // 来月取得
moment("2019-08-24T12:12:12"); // 日付設定
moment.unix(1404817123); // 日付設定

参考

https://qiita.com/taizo/items/3a5505308ca2e303c099

https://qiita.com/akifo/items/af5203510c33247028a8

メール送信のライブラリをインストール

$ npm install nodemailer

package.jsonに以下が追加されてることを確認

{
  "dependencies": {
    "nodemailer": "^6.4.10"
  }
}

サンプル

const nodemailer = require('nodemailer');
  const gmailEmail = "hoge***@gmail.com";
  const gmailPassword = "******";
  let transporter = nodemailer.createTransport({
      service: 'gmail',
      port: 465,
      secure: true,
      auth: {
          user: gmailEmail,
          pass: gmailPassword
      }
  });
  const to = "hoge@example.com";
  const msg = "message1";
  const mailOptions = {
      from: gmailEmail,
      to: to,
      subject: 'This is a sample of email function',
      html: `${msg}`
  };
  transporter.sendMail(mailOptions, (erro, info) => {
      if (erro) {
          return response.send(erro.toString());
      }
      return response.send('Sended');
  });

gmailに重大なセキュリティ通知がきた。

参考:https://code.st40.xyz/article/935