「Gcp/Firebase/CloudFunctions/外部ライブラリ」の版間の差分
提供: 初心者エンジニアの簡易メモ
(ページの作成:「==外部ライブラリインストール== 例としてmomentライブラリを入れる cd functions npm install moment functions/package.json にmomentが追加さ...」) |
(→momentライブラリをインストール) |
||
(同じ利用者による、間の11版が非表示) | |||
行1: | 行1: | ||
==外部ライブラリインストール== | ==外部ライブラリインストール== | ||
− | + | ===momentライブラリをインストール=== | |
− | + | ||
cd functions | cd functions | ||
npm install moment | npm install moment | ||
+ | npm install moment-timezone | ||
functions/package.json にmomentが追加されてることを確認 | functions/package.json にmomentが追加されてることを確認 | ||
行10: | 行10: | ||
"firebase-functions": "^3.1.0", | "firebase-functions": "^3.1.0", | ||
"moment": "^2.24.0" | "moment": "^2.24.0" | ||
+ | "moment-timezone": "^0.5.26" | ||
}, | }, | ||
index.js | index.js | ||
<pre> | <pre> | ||
− | const moment = require("moment"); | + | // 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("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 | ||
+ | |||
+ | ===メール送信のライブラリをインストール=== | ||
+ | $ 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に重大なセキュリティ通知がきた。