I / O 2017のFirebase新機胜

Google I \ O 2017の参加者およびニゞニノノゎロドの アレクサンダヌデニ゜フの GDGリヌドからのゲスト蚘事。



こんにちは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にもありたす。



玠敵なささいなこず



最埌に、既存のサヌビスに远加されたすおきなこずに぀いお簡単に説明したす。



リアルタむムデヌタベヌス





ストレヌゞ





クラりドメッセヌゞング





TestLab





たた、どのサヌビスにも接続せずに、SwiftサポヌトがiOS SDKに実装されたこずを远加したす。これにより、Firebaseで䜜業するiOS開発者を満足させるこずができたす。



それでは、どのような結論を匕き出すこずができたすか I / Oで予想倖の玠晎らしいものは䜕も提瀺されたせんでした。 しかし、Firebaseは成長しおおり、ゆっくりず自信を持っお成長しおいたす。 そのサヌビスをバック゚ンドずしお䜿甚するこずで、すでに非垞に競争力のあるアプリケヌションを䜜成し、䜜業を分析し、進捗を管理し、収益化するこずができたす。 さらに、ナヌザヌにはより興味深いツヌルが衚瀺されたす。



PSFirebaseからの興味深い提案がI / Oで衚明されたした-Alpha プログラム VPNなしでは開きたせん。 登録しおプログラムぞの参加を垌望する人は、リリヌス前にFirebaseサヌビスの曎新を確認する機䌚がありたす。 完党ではありたせん䞀郚の堎所では完党に未加工だず思いたすが、アルファコミュニティに参加しお、ただリリヌスされおいない補品に関するフィヌドバックを圢成するこずで、Firebaseの将来を決定するのに圹立ちたす



All Articles