Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduction to firebase (Basic features, datab...

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

Introduction to firebase (Basic features, database profiler and cloud functions)

Slides used in "introduction to firebase - part 2" meetup
(https://www.meetup.com/Pune-Mobile-Developers/events/239689155/ ) by Pune Mobile Developers

Avatar for Kaushal Dhruw

Kaushal Dhruw

May 14, 2017
Tweet

More Decks by Kaushal Dhruw

Other Decks in Programming

Transcript

  1. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved.

    Firebase Introduction part 2 Kaushal Dhruw
  2. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 2 Agenda •  The problem / use case •  The “without-firebase” approach •  Firebase Basics –  What is it? –  Features –  What’s new? •  The Firebase approach •  Boost performance using database profiler •  Go server-less with Cloud functions
  3. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 3 The Use-case •  I want to develop a collaborative photo sharing app. •  I should be able to save photos and details on cloud. •  Users should be able to login via social logins, comment, like and share. •  New picture notification via push message. •  I want to sanitize data before saving into database. –  e.g. change crazy to lovely, stupid to wonderful etc.
  4. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 4 “without firebase” approach We know the use cases, lets develop for one client…
  5. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 5 Building the client •  Create social / email login •  Create layout for displaying shared pictures, and provision for like / share / comment. •  Handle caching / connectivity. •  Upload and fetch images from cloud
  6. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 6 Building the backend •  Handle user login •  Create a storage bucket. •  Create REST endpoints (IaaS, PaaS, M/BaaS). •  Integrate push notification •  Make it scalable M/BaaS is an obvious choice for quick development
  7. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 7 BaaSes provide subset of:
  8. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 8 Let’s see how firebase helps
  9. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 9 What Is Firebase •  A complete BaaS solution that includes –  Real time JSON database –  Analytics –  Cloud Functions –  Hosting –  Cloud storage –  Cloud messaging –  And more
  10. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 10 Enter The All New Firebase
  11. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 11 The free feature set
  12. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 12 Real Time Database •  Unlike RDBMS, data is stored as JSON. It is no-SQL JSON database. •  What makes it real time it its ability to notify listeners of any change in data. •  Whenever any change is made in JSON database structure, the firebase SDK notifies the listeners. •  So you can forget about REST API calls, connectivity check, 3rd party libraries and polling.
  13. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 13 Core Magic Of Firebase
  14. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 14 Saving Data In Firebase •  Get database reference (base node) –  DatabaseReference mDBRef = FirebaseDatabase.getInstance().getReference() •  Point it to the right JSON node –  mDBRef = mDBRef.child(“mydb”).child(“table1”); •  Set the value at the pointed node –  mDBRef.child(‘row1’).setValue(myPOJO); •  Or push the value to create a unique key and set the value –  mDBRef.push().setValue(myPOJO);
  15. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 15 View Your Saved Data •  Log on to https://firebase.google.com. •  Go to console and select your project. •  Hit database and select data tab
  16. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 16 Retrieving Data •  Data is retrieved via callbacks listeners. •  There are mainly 2 types of listeners –  ValueEventListener – get entire child structure. –  ChildEventListener – get only the child that got changed / added or deleted. •  Attach these listeners to Database reference we saw earlier. •  Both of these listeners are called once, so app can get the data and prepare UI
  17. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 17 Pagination •  Create a Query object or keep using DatabaseReference. Query is super class of DatabaseReference class. •  Set orderBy some child key (and filter if needed) •  Set limits (startAt, limit etc.) •  Appropriate callback will be called when operation is complete.
  18. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 18 Pricing
  19. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 19 Firebase Authentication How long would it take you to develop this???
  20. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 20 Firebase Authentication Integrate easily with popular identity providers like google, twitter, facebook and more
  21. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 21 Firebase Storage •  Store image, audio, video and other content in cloud easily without worrying about the network quality. •  Firebase adds Google security to file uploads and downloads. •  Backed by Google cloud storage. •  Petabyte scalability available if your app goes viral.
  22. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 22 Upload Files To Firebase •  Get Storage reference –  storage = FirebaseStorage.getInstance().getReferenceFromUrl(‘gs:<bucket>’); –  storage = storage.child(‘myimages/user1234pic.jpg’); •  Easily change reference. –  storage.getParent(), getRoot(), getPath(), getName(), getBucket() etc. •  Upload from memory, stream or from local storage –  storage.putBytes(imageData); // as byte array. –  storage.putStream(stream); // as input stream –  Storage.putFile(fileURI): // Uri of the local file to be uploaded
  23. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 23 Download Files From Firebase •  Download to a local file –  File localFile = File.createTempFile(‘mefile’,’jpg’); –  storage.getFile(localFile).addOnSuccessListener(…); •  Download to memory –  Final long ONE_MEG = 1024*1024; –  storage.getBytes(ONE_MEG).addOnSuccessListener(new OnSuccessListener<byte[]>() { •  Public void onSuccess(bytes[] bytes){ } –  } );
  24. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 24 Pricing
  25. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 25 Crash Reporting •  Monitor fatal and non-fatal errors. •  Errors are grouped into clusters of similar stack traces. •  Find bug cause easily - Report consists of stack trace, device characteristics, performance etc. •  Enable email alerts to be notified of crashes in real time. •  Integrate with analytics to find order of events that caused the crash. •  ALL WITH 0 LINES OF CODE (not even initialization).
  26. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 26 Implement Crash Reporting •  Connect your app with firebase console. •  Add Gradle dependency. •  Add custom logs wherever required (optional). –  FirebaseCrash.log(“SQLite syntax error”); •  Upload mapping file for pro-guarded apps to view actual stacktrace.
  27. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 27 Firebase test lab for android •  Cloud based infrastructure for testing android apps. •  Test across variety of real devices and configurations. •  Test results include logs, videos and screenshots. •  Integrate with android studio and CI easily.
  28. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 28 Pricing
  29. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 29 Firebase Cloud Messaging •  It is a cross-platform messaging solution that reliably delivers messages at no cost. •  Send notifications that are displayed to your user. Or send data messages which can be consumed by application code. •  Distribute messages to your client app in any of three ways — to single devices, to groups of devices, or to devices subscribed to topics (from firebase console). •  Send acknowledgments from devices back to your server over FCM’s reliable and battery-efficient connection channel. •  95% of the messages delivered in under 250 milliseconds.
  30. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 30 FCM message structure { "to" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...", "notification" : { "body" : "great match!", "title" : "Portugal vs. Denmark", "icon" : "myicon" }, "data" : { ”nick" : "Mario", ”room" : "PortugalVSDenmark" } }
  31. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 31 Migrating from GCM •  In the Firebase console, select Import Google Project. •  All the permissions required by FCM are now added automatically by library. •  com.google.android.gms.gcm.GcmReceiver is already with FCM added automatically. No need to add in manifest. •  Remove registration. •  GcmPubSub methods have been integrated and simplified in the FirebaseMessaging class.
  32. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 33 Building the client •  Create social / email login – Use firebase-auth SDK for client. •  Create layout for displaying shared pictures, and provision for like / share / comment. •  Handle caching / connectivity – handled by firebase. •  Upload and fetch images from cloud – use firebase storage sdk.
  33. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 34 Building the backend •  Handle user login •  Create a storage bucket. •  Create REST endpoints. •  Integrate push notification •  Make it scalable Handled by firebase
  34. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 35 Of course all of these covered
  35. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 36 Integrate SDK in other clients
  36. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 37 Android app walkthrough
  37. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved.

    38 Measuring Database performance with profiler
  38. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 39 Database profiler •  Firebase Real-time database gives no insights about performance by default. •  Firebase CLI’s built in profiler is handy tool for measuring performance. •  Install and initialize latest version of firebase CLI and start profiling with a single command: –  firebase database:profile (optional --raw) •  This aggregates DB operations into a summary table broken down into: speed, bandwidth and unindexed queries.
  39. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 40 DB Profiler: Read Speed
  40. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 41 DB Profiler: Write Speed
  41. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 42 DB Profiler: Broadcast Speed
  42. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 43 DB Profiler: Bandwidth
  43. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 44 DB Profiler: Bandwidth
  44. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 45 DB Profiler: Unindexed Queries Android logs: Using an unspecified index. Consider adding '".indexOn": "dateTaken"' at photos Using an unspecified index. Consider adding '".indexOn": "likedById"' at likes Using an unspecified index. Consider adding '".indexOn": "ar5factId"' at comments Using an unspecified index. Consider adding '".indexOn": "ar5factId"' at likes
  45. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 46 Adding suggested indexes
  46. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 47 Resulting Performance
  47. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved.

    48 Cloud functions (Beta) – go serverless
  48. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 49 What are cloud functions ? •  Glue between firebase and cloud services. •  It is a piece of JavaScript code stored on Google cloud that runs in a managed node.js environment. •  No need to manage / scale. •  Extend firebase features with cloud functions without having to think about servers – “go server-less”
  49. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 50 Key Capabilities •  Real-time database triggers. –  Sanitize data •  Firebase authentication triggers. –  Send welcome email •  Firebase analytics triggers. –  Send a coupon after successful purchase •  Cloud storage triggers. –  Create and store thumbnails •  Cloud Pub/Sub triggers. –  Log messages published for a topic •  HTTP Triggers. –  Rest End points that can be triggered form client
  50. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 51 Setting up cloud functions •  Install node.js and npm (https://nodejs.org/) •  Install latest firebase CLI –  npm install -g firebase-tools •  Log in to firebase –  firebase login •  Initiate firebase project directory –  firebase init (pick only functions. Next slide) •  View other command reference here: –  https://firebase.google.com/docs/cli/
  51. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 52
  52. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 53
  53. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 54 After firebase project directory initialization with functions What gets created: •  functions/package.json - used by node to describe the project. All dependencies goes here. •  functions/node_modules - This is where npm keeps all its dependencies. •  functions/index.js - Entry point for defining all of the cloud functions.
  54. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 55 HTTP triggered cloud function
  55. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 56 Deploy cloud functions Using firebase CLI the following can be deployed: •  New releases of firebase hosting sites •  New or existing cloud functions •  Real-time database rules •  Cloud storage rules Deploy : •  firebase deploy (full deploy) •  firebase deploy –-only functions/ hosting/database/storage (partial deploy)
  56. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 57 Successful deployment
  57. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 58 Database triggered CF. •  Use-case 1: Remove inappropriate displayable content from comments section of the app. •  Use-case 2: Send notifications to app users when a new element is created (new follower / new Pic) •  Either write duplicate logic in all the clients, OR have it in one place and change it without having to publish app updates.
  58. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 59 Sanitize database input text
  59. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 60 Sanitize database input text
  60. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 61 Send new follower notification
  61. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 62 Send new pic notification
  62. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 63 Send new pic notification
  63. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 64 Why return from cloud function •  If your cloud function is doing something asynchronous, you must return a promise for the task to complete. •  Updating database is asynchronous, so we return a promise. •  A Promise object is used for asynchronous computations. A Promise represents a value which may be available now, or in the future, or never.
  64. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 65 JavaScript promise
  65. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 66 JavaScript continued… •  Use Promise.all(…) to return a single promise for multiple promisses. This promise succeeds when all promises have succeeded. •  For any work after promise has been fulfilled use Promise.prototype.then(onFulfilled, onRejected) function. •  It is usually good practice to chain promises for readability.
  66. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 67 Chaining promises
  67. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 68 Storage triggered CF.
  68. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 69 Storage triggered CF.
  69. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 70 Firebase Auth Triggered CF.
  70. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 71 Analytics triggered CF.
  71. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 72 Pricing
  72. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 73 Some good resources •  firebase youtube channel for fire casts. •  Cloud function sample projects. •  Firebase blog. •  Laurence Moroney blog. •  Official guide getting started. •  Join the firebase slack community https://firebase-community.slack.com/
  73. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 74 Join the discussion on slack •  Pune mobile developers slack group: https://pune-mobile- developer.slack.com •  Request an invite here: https://goo.gl/TERdGK
  74. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 75 Thank you Any ques5ons? @drulabs: twi.er / github Source for Vividity: hZps://goo.gl/8D5aUF Source for SyncroEdit: hZps://goo.gl/BLElI8
  75. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 76 Backup slides
  76. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 77 Next meetup suggestions •  What’s new in android O •  Protocol oriented programming •  Progressive web apps •  React Native •  Cross-platform game development using unity3d •  Android ndk
  77. Copyright © 2016 Talen5ca So8ware (I) Pvt Ltd. All rights

    reserved. Copyright ©2016 Talen5ca So8ware (I) Pvt Ltd. All rights reserved. 78 App Screens