ããã«ã¡ã¯HabrïŒ æè¿ã次ã®Googleãã¯ãããžãŒã«é¢ããåœéäŒè°-I / O 2017ãã«ãªãã©ã«ãã¢å·ããŠã³ãã³ãã¥ãŒã§éå¬ãããŸããã誰ããã«ãªãã©ã«ãã¢ã«è¡ãã誰ããGDGã³ãã¥ããã£ã®å°åæ¯éšã«ãã£ãŠéå¬ãããI / O Extendedã«æ¥ãŠãèªåã§æŸéããŸãããã誰ãããŸã£ããèŠãŸããã§ããïŒå¿µã®ãããããã«æ®ããŠãããŸãïŒ 2017幎ã®ãã¹ãŠã®I / Oã»ãã·ã§ã³ãèšé²ãããŸã ïŒã ä»å¹ŽãäŒè°ã®è¯ãæªããæèŠã¯ççŸããŠãããç§ã¯èªåèªèº«ã®ããã«ããèšããªããæ¬åœã«æ°ã«å ¥ã£ãã

æšå¹Žãç§ã¯FirebaseããŒã ã®ã¡ã³ããŒãäœãããŠãããã«éåžžã«èå³ããããããã«ã€ããŠã®èšäºãæžããã®ã§ãFirebaseãšã³ã·ã¹ãã ã«ã©ã®ãããªæ°ãããã®ãç»å Žããã©ã®ããã«äœ¿çšã§ããããã話ãããããšæããŸãã
ãã¡ããªãã¯çµ±å

Googleã¯ãã°ããåã«TwitterããFabricãè²·åãããšèããŠããŸããããI / Oã§ã¯ãFabricã®FabricãããŒãžã£ãŒRich ParetãšFirebaseã®å ±åèšç«è Andrew Leeã®ã°ã«ãŒããåãã¹ããŒãžã§å人çã«äŒããããŒã ãåå ããŠããããã®èŠéãã«ã€ããŠè©±ãåããŸããã

ããã§ããã®å䜵ã®çµæãšããŠäœãåŸãã®ã§ããããïŒ ç¬¬äžã«ã ã¯ã©ãã·ã¥ã¬ããŒãã®äž»èŠãªãœãªã¥ãŒã·ã§ã³ãšã㊠ã CrahslyticsããŸããªãFirebaseã«çµ±åãããŸã ïŒ æ¢ã«Crash Reportingã³ã³ãœãŒã«ã§CrashlyticsãµãŒãã¹ãã€ã³ã¹ããŒã«ããŠãã®ãã¹ãã«åå ããããæåŸ ãããŠããããŸããªãFirebase Crash Reportingãå®å šã«çœ®ãæããŸãã

次ã«ã DigitsãµãŒãã¹ãšã®çµ±åã«ãããé»è©±çªå·ã«ããèªèšŒãå¯èœã«ãªããŸãã ïŒ 1ãæããã1äžä»¶ã®èªèšŒãç¡æã§å®è¡ã§ããŸããããã¯ãéçºè ã®ããŒãºãå®å šã«ã«ããŒããã¯ãã§ãã ãŸããç¬ç«è£œåãšããŠã®Digits SDKã¯ãããã«éæšå¥šã¹ããŒã¿ã¹ã«ãªããŸãã

ããã«é»è©±ã§ã¢ããªã±ãŒã·ã§ã³ã«èªèšŒãåºå®ãããããããã«ç°¡åãã瀺ãããã£ãã®ã§ãããå€æããããã«ããã®ãµãŒãã¹ã¯iOSããã³WEBéçºè ã®ã¿ãå©çšã§ããããã«ãªããŸãããAndroidããŒãžã§ã³ã¯ããã«æ°é±éåŸ ããªããã°ãªããŸããã
Firebase Cloud Functionsã䜿çšãããã€ãããã¯ãã¹ãã£ã³ã°
3æãGoogle NEXT'17ã§ãFirebaseããŒã ã®ã¡ã³ããŒã¯ãFirebaseãµãŒãã¹ã®æ°ããCloud Functionsã®ããŒã³ãã«ã€ããŠè©±ããŸããã ãã®ãµãŒãã¹ã¯ãGoogle JavaScriptã€ã³ãã©ã¹ãã©ã¯ãã£ã§å°ããªJavaScripté¢æ°ãçŽæ¥ãã¹ãããFirebaseãµãŒãã¹ãŸãã¯HTTPãªã¯ãšã¹ãã«ãã£ãŠåŒãèµ·ããããã€ãã³ããžã®åå¿ãšããŠå®è¡ããæ©èœãæäŸããŸãã
ããã«ãããæ°ãããŠãŒã¶ãŒããšã«ãŠã§ã«ã«ã ã¡ãŒã«ãéä¿¡ããïŒèªèšŒïŒãæçš¿ããã£ããã®åãšãã远跡ããã³åé€ããïŒãªã¢ã«ã¿ã€ã ããŒã¿ããŒã¹ïŒãã¹ãã¬ãŒãžã«ã¢ããããŒããããšãã«ç»åãå€æããïŒã¹ãã¬ãŒãžïŒãªã©ãç¬èªã®æ©èœã䜿çšããŠFirebaseãµãŒãã¹ã®æšæºæäœãã«ã¹ã¿ãã€ãºãŸãã¯æ¡åŒµã§ããŸãã
è©Šããããšã®ãªã人ã®ããã«ãCloud Functionsã¢ããªã±ãŒã·ã§ã³ã®äŸã瀺ããŸãã GitHubããFriendlyChatã®ãœãŒã¹ã³ãŒããååŸããŸãããã®ã¢ããªã±ãŒã·ã§ã³ã¯ãæšå¹Žã®èšäºã§èª¬æããŸããã ãããã¯ãªãŒã³ãªFirebaseãããžã§ã¯ãã«ãã€ã³ãããCloud Functionãè¿œå ããŸããããã«ããããã¹ãŠã®æ°ãããŠãŒã¶ãŒããã£ããã«èªåçã«æè¿ãããŸãã
æåã®ã¹ãããã¯ã Node.jsãã€ã³ã¹ããŒã«ããŠããã次ã®ã³ãã³ãã䜿çšããŠFirebase Command Line InterfaceïŒCLIïŒãã€ã³ã¹ããŒã«ããããšã§ãã
npm -g install firebase-tools
ã³ãã³ãã䜿çšããŠã€ã³ã¿ãŒãã§ãŒã¹ã«ãã°ã€ã³ããŸã
firebase login
ãããžã§ã¯ãçšã®ãã©ã«ããŒãäœæãããã®ãã©ã«ããŒã«ç§»åããŠãã³ãã³ãã§ãããžã§ã¯ãèªäœãäœæããŸã
firebase init functions
ãã®çµæããããžã§ã¯ãæ§é ããã©ã«ããŒã«äœæãããé¢æ°ãã©ã«ããŒã«ç§»åããŠindex.jsãèŠã€ããŸã ãããã«é¢æ°ãä¿åãããŸãã ãã¡ã€ã«ãéããšããã®äžã«1è¡ãããããŸãã-const functions = requireïŒ 'firebase-functions'ïŒ ; -ããã¯å®éã«ã¯Firebase SDKæ¥ç¶ã§ãã ããã«Admin SDKæ¥ç¶ãè¿œå ããŸãã
const admin = require('firebase-admin'); admin.initializeApp(functions.config().firebase);
æºåãå®äºããŸãããé¢æ°èªäœãå®è£ ããŠããŸããèªèšŒãµãŒãã¹ã§æ°ãããŠãŒã¶ãŒãäœæãããã€ãã³ããã€ãŸããŠãŒã¶ãŒãåããŠãã£ããã«åå ããã€ãã³ãã§èµ·åããŸãã
exports.addWelcomeMessages = functions.auth.user().onCreate(event => { const user = event.data; console.log('A new user signed in for the first time.'); const fullName = user.displayName || 'Anonymous'; // return admin.database().ref('messages').push({ name: 'Firebase Bot', photoUrl: 'https://image.ibb.co/b7A7Sa/firebase_logo.png', // Firebase logo image hosting text: '${fullName} signed in for the first time! Welcome!' }); });
é¢æ°ãã¯ã©ãŠãã«ã¢ããããŒãããã®ã¯æ®ããããã§çµããã§ãã
firebase deploy --only functions
ã¢ããªã±ãŒã·ã§ã³ãå®è¡ã§ããæ¿èªåŸããããã¯ãã£ããã§æ°ãããŠãŒã¶ãŒãæè¿ããŸãã

ãããããããã¯ãã¹ãŠI / Oã®åã«æ瀺ãããŸããïŒ ãã®äžã§ãFirebaseã¯Webéçºè ã®ã³ââãã¥ããã£ãåã°ããæ¬æ°ããå°å ¥ããŸããã 以åã¯éçã³ã³ãã³ãã®ã¿ã®æäœãèš±å¯ããŠããFirebase HostingãµãŒãã¹ã¯ãCloud Functionsãšã®çµ±åã«ããæ¡åŒµãããCloud FunctionsãµãŒãã¹ã«ãã£ãŠçæãããåçã³ã³ãã³ããšé£æºããããã«ãªããŸãã ã
ããã°ã¬ãã·ãWebã¢ããªã±ãŒã·ã§ã³ã«é¢äžããéçºè ã¯ããµãŒããŒãå®å šã«æŸæ£ããFirebaseã®ã¿ã䜿çšã§ããããã«ãªããŸãã
äŸãæããããšæããŸãããFirebaseã䜿çšããWebéçºã«ã€ããŠã¯ãŸã æžããŠããŸãããèšäºã倧ããããã®ã§ãWebåãã®éçºãšCloud Functionsã®äœ¿çšã«å°å¿µãã次ã®èšäºãæåŸ ããŠãã ããã
Firebaseããã©ãŒãã³ã¹ã¢ãã¿ãªã³ã°
å€ãã®å Žåãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ã®äœäžãå®å®æ§ããŠãŒã¶ãŒã®äžæºã®äž»ãªåå ã§ãã ãã ããã¢ããªã±ãŒã·ã§ã³ã®çç£æ§ãå®å®æ§ãååã§ãªãçç±ãç解ããã®ã¯å¿ ããã容æã§ã¯ãããŸããããã®å°é£ãªã¿ã¹ã¯ãæ¯æŽããããã«ãFirebaseããŒã ã¯ããŒã¿ãã¹ãã§æ°ããããã©ãŒãã³ã¹ç£èŠãµãŒãã¹ãéå§ããŸããã Firebase Performance Monitoringã¯ãäžæ£ãªã³ãŒããè€éãªãããã¯ãŒã¯ç¶æ ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã«åœ±é¿ãäžããå Žåã®ç解ã«åœ¹ç«ã€æ°ããç¡æã®ããŒã«ã§ãã
ãµãŒãã¹ãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ã«é¢ããããŒã¿ã®åéãéå§ããã«ã¯ãPerformance Monitoring SDKã«æ¥ç¶ããå¿ èŠããããŸãããã®åŸããµãŒãã¹ã¯ããŒã¿ã®åéãããã«éå§ããŸãã ãã®ãµãŒãã¹ã¯ããããããã¬ãŒã¹ïŒãã¬ãŒã¹ïŒã®åœ¢åŒã§ã¬ããŒããæäŸããŸã-ã¢ããªã±ãŒã·ã§ã³ã®2ã€ã®ã€ãã³ãéã®ããã©ãŒãã³ã¹ã¬ããŒãã æ¥ç¶ãããšããã«ãèªåãã¬ãŒã¹ã®ããŒã¿ã®åéãéå§ãããŸãã
- ã¢ããªéå§ãã¬ãŒã¹-ãŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ãéå§ããŠããã¢ããªã±ãŒã·ã§ã³ãå¿çãããŸã§ã®æéã枬å®ããŸã
- ããã¯ã°ã©ãŠã³ããã¬ãŒã¹ã®ã¢ããª-ããã¯ã°ã©ãŠã³ãã§ã¢ããªã±ãŒã·ã§ã³ãè²»ãããæéã枬å®ããŸã
- åæ¯ãã¬ãŒã¹ã®ã¢ããª-ã¢ããªã±ãŒã·ã§ã³ã®ã¢ã¯ãã£ããã£æéã枬å®ããŸã
ãµãŒãã¹ãã¢ããªã±ãŒã·ã§ã³ã«æ¥ç¶ããŠããã®å€èŠ³ã確èªããŸãã Google Codelabsã®æšæºã¢ããªã±ãŒã·ã§ã³ã§ããFriendlyChatãããŒã¹ã«æ¥ç¶ããŸããã ããã§ããã©ãŒãã³ã¹ã¢ãã¿ãªã³ã°ãæ¥ç¶ããŸãããã®ããã«ããããžã§ã¯ãã¬ãã«ã®build.gradleãbuildscriptâãªããžããªã»ã¯ã·ã§ã³ã«è¿œå ããŸãã
jcenter()
ãããŠbuildscriptã»ã¯ã·ã§ã³ãžâäŸåé¢ä¿
classpath 'com.google.firebase:firebase-plugins:1.1.0'
次ã«ãã¢ããªã¬ãã«ã®build.gradleã§äŸåé¢ä¿ã»ã¯ã·ã§ã³ã«
compile 'com.google.firebase:firebase-perf:10.2.6'
ããã³é©çšãã©ã°ã€ã³ã®äžïŒ 'com.android.application'
apply plugin: 'com.google.firebase.firebase-perf'
ããã§ããµãŒãã¹ãæ¥ç¶ãããã¢ããªã±ãŒã·ã§ã³ã®èµ·åæã«èªåãã¬ãŒã¹ãèµ·åããŸãã
èªåãã¬ãŒã¹ã§ã¯æããã«ååã§ã¯ãªããããSDKãæäŸããAPIã䜿çšããŠã«ã¹ã¿ã ãã¬ãŒã¹ãäœæããæ©äŒãæäŸãããŸãã ãããã¯ãããã©ãŒãã³ã¹ã«é¢é£ããã€ãã³ãã«ãŠã³ã¿ãŒã§è£å®ã§ããŸããããšãã°ãæå®ãããæéããé·ãUIã䜿çšã§ããªãã£ãåæ°ã§ãã
ã«ã¹ã¿ã ãã¬ãŒã¹ã¯éåžžã«ç°¡åã«è¿œå ããããã¬ãŒã¹ããã³ãŒãã»ã¯ã·ã§ã³ã®åã«è¿œå ããŸãã
Trace myTrace = FirebasePerformance.getInstance().newTrace("test_trace"); myTrace.start();
ãããŠããããã®åŸ
myTrace.stop();
ãã£ããã«ç»åã¢ããããŒããã¬ãŒã¹ãè¿œå ããŸãããèå³ãåŒãããã«ã«ãŠã³ã¿ãŒãè¿œå ããŸã
myTrace.incrementCounter("storage_load");
ãã ããã³ã³ãœãŒã«ã®çµæã¯ããã«å©çšã§ããããã§ã¯ãªãã12æé以å ã«è¡šç€ºãããŸãã

é«åºŠãªåæ
ãããããFirebase Analyticsã¯ããååšããŠããŸãããçŸåšããã®ãµãŒãã¹ã¯Firebaseåãã®Google AnalyticsãšåŒã°ããŠããŸãã ãããã¯å¶ç¶ã§ã¯ãããŸããã ãã®ãµãŒãã¹ã¯FirebaseãšGoogle AnalyticsããŒã ã«ãã£ãŠå ±åéçºããããã¹ãŠã®ã¬ããŒãã¯Firebaseã³ã³ãœãŒã«ã ãã§ãªããGoogle Analyticsã€ã³ã¿ãŒãã§ãŒã¹ã§ãå©çšã§ããããã«ãªããŸããã


StreamViewãšDebugViewã®æ°ããçš®é¡ã®ã¬ããŒãã幎ã®åãã«çºè¡šãããŸããããããã¯ãããã®æçšæ§ã®çšåºŠãæãªããã®ã§ã¯ãããŸããã StreamViewã¯ãFirebase Analyticsã«å°çããã€ãã³ããèŠèŠåããæ倧12æéã®é 延ã§ã¯ãªãããŠãŒã¶ãŒããªã¢ã«ã¿ã€ã ã§ã¢ããªã±ãŒã·ã§ã³ãšå¯Ÿè©±ããæ¹æ³ã®äžè¬çãªã¢ã€ãã¢ãæäŸããŸãã ãŸããDebugViewã䜿çšãããšãèšé²ãããŠããã€ãã³ããããã«ç¢ºèªã§ããŸãã

ãããŠã誰ããé·ãéåŸ ã£ãŠãããã1ã€ã®ãã¥ãŒã¹ã ãŠãŒã¶ãŒã€ãã³ããšãã©ã¡ãŒã¿ãŒã®åææ å ±ã¯ã以åå¿ èŠã ã£ãããŒã¿ãBigQueryã«ã¢ããããŒãããã®ã§ã¯ãªããã³ã³ãœãŒã«ã®ã¬ããŒãã§çŽæ¥è¡šç€ºã§ããããã«ãªããŸãã ã ãããè¡ãã«ã¯ãã³ã³ãœãŒã«ã®åãå Žæã§ã¬ããŒããã©ã¡ãŒã¿ãèšå®ããã ãã§ãã
ããã«å€ãã®èå³æ·±ãæ©èœãè¿œå ãããŸãããAdMobãšã®çµ±åãèªåã¹ã¯ãªãŒã³ãã©ããã³ã°ãBigQueryã®ç¡æã®ã¹ãã¬ãŒãžå±€.... ãã®ãããåæã®ããã«ãå¥ã®èšäºãæžãå¿ èŠããããšæããŸãã
Firebase SDKããªãŒãã³ãœãŒã¹ã«ãªããŸãã
ã¯ãããŸãã«ããã§ãã Firebase SDKã®ãœãŒã¹ã³ãŒãã¯ãGitHubã§åŠç¿ã§ããããã«ãªããŸããã ãã¡ããã Firebase iOS SDK 4.0 ã Firebase JavaScript SDK 4.0 ãããã³Firebase Admin SDKïŒ Node.js ã Javaããã³Python ïŒã®ãœãŒã¹ã³ãŒãã®ãã¹ãŠãçŸåšå©çšã§ããããã§ã¯ãããŸããã Android SDKãã¬ã€ã¢ãŠããã次ã®çŽæã¯ãã€ã©ã€ã©ããŠåŸ ã€ããšã§ãã

ã³ãŒãå ã®äœããæ°ã«å ¥ããªããã°ãGoogleãä¿®æ£ã§ããããã«ãªããŸããïŒ ã€ãŸããçŸåšãèªåã®èŠ³ç¹ãããã°ãèŠã€ããå Žåãæšæºã®GitHub課é¡ãã©ãã«ãŒã䜿çšããŠèª²é¡ãäœæããã ãã§ãFirebaseããŒã ããããæ€èšããŸãã ãããžã§ã¯ãå šäœã¯ã Google Open Source Directoryã«ããããŸãã
çŽ æµãªããããªããš
æåŸã«ãæ¢åã®ãµãŒãã¹ã«è¿œå ãããããŠããªããšã«ã€ããŠç°¡åã«èª¬æããŸãã
ãªã¢ã«ã¿ã€ã ããŒã¿ããŒã¹ïŒ
- æ¡åŒµæ©èœãæ倧100,000ã®åææ¥ç¶ãå©çšå¯èœã«ãªããŸãã
- ãããã¡ã€ãªã³ã°æ©èœãè¿œå ããããããã¡ã€ã©ãŒã«ãããããŒã¿ã®åŠçé床ãã¹ã«ãŒããããã¬ãã«ã«å¿ããé 延æéãåæã§ããŸã
ã¹ãã¬ãŒãžïŒ
- æ¢åã®ã¯ã©ãŠãã¹ãã¬ãŒãžãã±ããã«ãããã³ã°ãè¿œå ãããFirebaseãä»ããŠäœæ¥ã§ããããã«ãªããŸãã
- ããã§ãããŒã¿ãä¿åããå°åãéžæã§ããŸãã ããã¯ãæ³ç芳ç¹ãšããã©ãŒãã³ã¹ã®èŠ³ç¹ã®äž¡æ¹ããæçšã§ãã
ã¯ã©ãŠãã¡ãã»ãŒãžã³ã°ïŒ
- APNã®ããŒã¯ã³èªèšŒãµããŒããè¿œå ãããã¯ã©ã€ã¢ã³ãSDKã®æ¥ç¶ããã³ç»é²ããžãã¯ãå€§å¹ ã«ç°¡çŽ åãããŸããã
TestLabïŒ
- ã²ãŒã ã«ãŒããµããŒããšFPSã¢ãã¿ãªã³ã°ãè¿œå ããŸãããããã¯ãåè¿°ã®Unity SDKããã³C ++ SDKãšçµã¿åãããããšã§ãFirebaseãã²ãŒã éçºè ã«ãšã£ãŠé åçãªãã®ã«ããŸãã
- ãããã¯ãŒã¯ã¬ãã«ãã·ãã¥ã¬ãŒãããæ©èœãè¿œå ããã4Gã3Gãªã©ã®æ¥ç¶é床ãéžæã§ããŸãã
- Google PixelãšGalaxy S7ã¯ãææ°äžä»£ã®å®éã®ããã€ã¹ã§ã¢ããªã±ãŒã·ã§ã³ããã¹ãããããã«ããŒã¿ã»ã³ã¿ãŒã«ç»å ŽããŸãã
- Android Oãžã®ã¢ã¯ã»ã¹ããããŸãã
ãŸããã©ã®ãµãŒãã¹ã«ãæ¥ç¶ããã«ãSwiftãµããŒããiOS SDKã«å®è£ ãããããšãè¿œå ããŸããããã«ãããFirebaseã§äœæ¥ããiOSéçºè ãæºè¶³ãããããšãã§ããŸãã
ããã§ã¯ãã©ã®ãããªçµè«ãåŒãåºãããšãã§ããŸããïŒ I / Oã§äºæ³å€ã®çŽ æŽããããã®ã¯äœãæ瀺ãããŸããã§ããã ããããFirebaseã¯æé·ããŠããããã£ãããšèªä¿¡ãæã£ãŠæé·ããŠããŸãã ãã®ãµãŒãã¹ãããã¯ãšã³ããšããŠäœ¿çšããããšã§ããã§ã«éåžžã«ç«¶äºåã®ããã¢ããªã±ãŒã·ã§ã³ãäœæããäœæ¥ãåæããé²æã管çããåçåããããšãã§ããŸãã ããã«ããŠãŒã¶ãŒã«ã¯ããèå³æ·±ãããŒã«ã衚瀺ãããŸãã
PSïŒFirebaseããã®èå³æ·±ãææ¡ãI / Oã§è¡šæãããŸãã-Alpha ããã°ã©ã ïŒVPNãªãã§ã¯éããŸããïŒã ç»é²ããŠããã°ã©ã ãžã®åå ãåžæãã人ã¯ããªãªãŒã¹åã«FirebaseãµãŒãã¹ã®æŽæ°ã確èªããæ©äŒããããŸãã å®å šã§ã¯ãããŸããïŒäžéšã®å Žæã§ã¯å®å šã«æªå å·¥ã ãšæããŸãïŒããã¢ã«ãã¡ã³ãã¥ããã£ã«åå ããŠããŸã ãªãªãŒã¹ãããŠããªã補åã«é¢ãããã£ãŒãããã¯ã圢æããããšã§ãFirebaseã®å°æ¥ã決å®ããã®ã«åœ¹ç«ã¡ãŸãïŒ