Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Chatting with Japanese using Firebase Extensions
Search
Firebase Thailand
November 09, 2019
Technology
320
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Chatting with Japanese using Firebase Extensions
Get to know how to build Translator Chatbot in LINE using Firebase Extensions
Firebase Thailand
November 09, 2019
More Decks by Firebase Thailand
See All by Firebase Thailand
Turn your ideas into real apps with Google AI Studio and Firebase
firebasethailand
0
59
From Live Coding to Vibe Coding with Firebase Studio
firebasethailand
1
870
What's New in Firebase 2024
firebasethailand
1
290
Adding New Capabilities to Your Apps with Firebase and Gemini API
firebasethailand
1
330
Say Hello to Cloud Functions for Firebase 2nd Gen
firebasethailand
1
520
What's New in Firebase 2023
firebasethailand
3
650
Building a more Efficient Firestore Web App
firebasethailand
1
260
Developing with Firebase - Best Practices
firebasethailand
0
240
Analyze your production issue on Firebase Crashlytics more efficient with BigQuery
firebasethailand
0
490
Other Decks in Technology
See All in Technology
Self Healing Rollouts: Automating Production Fixes with Agentic AI
kdubois
0
150
bet_ai_day_2026_session02
agenticsec
1
980
Bet AI Day 2026丨How We Bet AI: AIとともに働く場をつくる
layerx
PRO
2
2.3k
Azure App Service / Container Apps の組み込み認証
kuniteru
0
190
【視聴者参加型!】AWSセキュリティアンチパターンクイズ
syoshie
0
410
Genie Code ワークショップ 基礎編 / Genie-Code-Workshop-fundamental
databricksjapan
PRO
0
360
PM領域でのAI Agentの活用
lycorptech_jp
PRO
0
270
少人数データチームのDevin活用実践事例
runandy16
2
440
enechainの内製セルフサービスプラットフォーム
hiyosi
0
110
Bet AI Day 2026丨AIによって本質に戻るシステムリスク管理
layerx
PRO
0
900
いま、生成AIにKaggleをどこまで 任せられるか — ROGIIコンペでの進め方とTips
k951286
3
1.4k
Where Is JetBrains AI Heading- — Central CLI, Air Alpha, and the Agentic Development Stack
x5gtrn
PRO
0
130
Featured
See All Featured
So, you think you're a good person
axbom
PRO
2
2.1k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
570
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
510
Crafting Experiences
bethany
1
290
Paper Plane
katiecoart
PRO
2
53k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
320
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
230
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
My Coaching Mixtape
mlcsv
0
300
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
Transcript
GDG Thailand Firebase Thailand Organized by Chatting with Japanese using
Firebase Extensions Firebase Extensionsを使用して日本人とチャットする Warit Wanwithu LINE Thailand
#FirebaseDevDay DEVELOPERS นักพัฒนา デベロッパーズ
#FirebaseDevDay “How’s it Going” “Hello!”
None
#FirebaseDevDay Sending Email Resize Images Deleted User Data
https://github.com/firebase/functions-samples
#FirebaseDevDay ファイアーベース エクステンションズ
None
#FirebaseDevDay Install Functions Firestore Send email
None
#FirebaseDevDay DEMO デモ
#FirebaseDevDay CHATTING チャッティング
#FirebaseDevDay Functions Extensions Firestore 1.Webhook 2.Save 3.Translated 5.Push 4.Trigger
#FirebaseDevDay ❤ 0. Install Translation extension 1. Create LINE Chatbot
2. Handle LINE Webhook using Cloud Functions and save to Firestore 3. Listen to Firestore trigger and push message back to LINE group
1. Create LINE Chatbot https://developers.line.biz/
#FirebaseDevDay { "destination": "xxxxxxxxxx", "events": [{ "replyToken": "0f3779fba3b349968c5d07db31eab56f", "type": "message",
"timestamp": 1462629479859, "source": { "type": "user", "userId": "U4af4980629..." }, "message": { "id": "325708", "type": "text", "text": "Hello" } }]} 2. Handle LINE Webhook
#FirebaseDevDay exports.LineWebhook = functions.region(region).runWith(runtimeOpts) .https.onRequest(async (req, res) => { let
event = req.body.events[0]; if (event.message.type === 'text') { let input = event.message.text; await admin.firestore().collection('translations').doc('inputText') .set({ input: input }); } return res.status(200).send(req.method);; });
#FirebaseDevDay Functions Extensions Firestore Webhook Save Translated Push Trigger 3.
Listen to Firestore trigger
#FirebaseDevDay exports.LineBotPush = functions.region(region).runWith(runtimeOpts) .firestore.document('translations/inputText').onWrite(async (change, context) => { let
latest = change.after.data(); let input = latest.input; let containsJapanese = input.match(/[\u3000-\u303f\u3040-...]/); if (containsJapanese) { push(GROUP_ID, latest.translated.th); } else { push(GROUP_ID, latest.translated.ja); } });
None
#FirebaseDevDay MISSION ミッション
#FirebaseDevDay INSTALL CLOUD FUNCTIONS OPEN SOURCE CONFIG BETA
Thank You! #FirebaseDevDay Helpful resources fb.com/LINEDevTH fb.com/groups/LINEDevTH medium.com/LINEDevTH Warit Wanwithu
ありがとうございます