facebook twitter hatena line email

「Gcp/Firebase/CloudFunctions/外部ライブラリ」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(外部ライブラリインストール)
(momentライブラリをインストール)
 
(同じ利用者による、間の10版が非表示)
行1: 行1:
 
==外部ライブラリインストール==
 
==外部ライブラリインストール==
例としてmomentライブラリを入れる
+
===momentライブラリをインストール===
 
+
 
  cd functions
 
  cd functions
 
  npm install moment
 
  npm install moment
行16: 行15:
 
index.js
 
index.js
 
<pre>
 
<pre>
const moment = require("moment");
+
// const moment = require("moment"); // tzなし
// const moment = require("moment-timezone"); // 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("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=" + 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("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("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("2019-08-24T12:12:12"); // 日付設定
 
moment.unix(1404817123); // 日付設定
 
moment.unix(1404817123); // 日付設定
 
</pre>
 
</pre>
  
 +
====参考====
 
https://qiita.com/taizo/items/3a5505308ca2e303c099
 
https://qiita.com/taizo/items/3a5505308ca2e303c099
  
 
https://qiita.com/akifo/items/af5203510c33247028a8
 
https://qiita.com/akifo/items/af5203510c33247028a8
 +
 +
===メール送信のライブラリをインストール===
 +
$ npm install nodemailer
 +
 +
package.jsonに以下が追加されてることを確認
 +
<pre>
 +
{
 +
  "dependencies": {
 +
    "nodemailer": "^6.4.10"
 +
  }
 +
}
 +
</pre>
 +
サンプル
 +
<pre>
 +
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');
 +
  });
 +
</pre>
 +
gmailに重大なセキュリティ通知がきた。
 +
 +
参考:https://code.st40.xyz/article/935

2020年7月28日 (火) 02:06時点における最新版

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

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