CINXE.COM

<!doctype html><html lang="en"><head><title data-rh="true">How to increase app quality with Firebase and Google Play | by Akua Prempeh | Google Play Apps &amp; Games | Medium</title><meta data-rh="true" charset="utf-8"/><meta data-rh="true" name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,maximum-scale=1"/><meta data-rh="true" name="theme-color" content="#000000"/><meta data-rh="true" name="twitter:app:name:iphone" content="Medium"/><meta data-rh="true" name="twitter:app:id:iphone" content="828256236"/><meta data-rh="true" property="al:ios:app_name" content="Medium"/><meta data-rh="true" property="al:ios:app_store_id" content="828256236"/><meta data-rh="true" property="al:android:package" content="com.medium.reader"/><meta data-rh="true" property="fb:app_id" content="542599432471018"/><meta data-rh="true" property="og:site_name" content="Medium"/><meta data-rh="true" property="og:type" content="article"/><meta data-rh="true" property="article:published_time" content="2020-08-04T16:29:01.109Z"/><meta data-rh="true" name="title" content="How to increase app quality with Firebase and Google Play | by Akua Prempeh | Google Play Apps &amp; Games | Medium"/><meta data-rh="true" property="og:title" content="How to increase app quality with Firebase and Google Play"/><meta data-rh="true" property="al:android:url" content="medium://p/bccf59f8d92e"/><meta data-rh="true" property="al:ios:url" content="medium://p/bccf59f8d92e"/><meta data-rh="true" property="al:android:app_name" content="Medium"/><meta data-rh="true" name="description" content="If you’ve ever published an app to Google Play, you may have experienced a moment of panic before release. “Is my app stable enough to handle thousands of users? Will it work as designed across…"/><meta data-rh="true" property="og:description" content="Learn how the combined use of Firebase &amp; Google Play quality tools provide you with broad and in-depth insight into your app’s stability."/><meta data-rh="true" property="og:url" content="https://medium.com/googleplaydev/how-to-increase-app-quality-with-firebase-and-google-play-bccf59f8d92e"/><meta data-rh="true" property="al:web:url" content="https://medium.com/googleplaydev/how-to-increase-app-quality-with-firebase-and-google-play-bccf59f8d92e"/><meta data-rh="true" property="og:image" content="https://miro.medium.com/v2/resize:fit:1200/1*Bp_WgSjbTHtQmoQO4SBhqA.png"/><meta data-rh="true" property="article:author" content="https://medium.com/@aprempeh_39888"/><meta data-rh="true" name="author" content="Akua Prempeh"/><meta data-rh="true" name="robots" content="index,noarchive,follow,max-image-preview:large"/><meta data-rh="true" name="referrer" content="unsafe-url"/><meta data-rh="true" property="twitter:title" content="How to increase app quality with Firebase and Google Play"/><meta data-rh="true" name="twitter:site" content="@googleplaybiz"/><meta data-rh="true" name="twitter:app:url:iphone" content="medium://p/bccf59f8d92e"/><meta data-rh="true" property="twitter:description" content="Learn how the combined use of Firebase &amp; Google Play quality tools provide you with broad and in-depth insight into your app’s stability."/><meta data-rh="true" name="twitter:image:src" content="https://miro.medium.com/v2/resize:fit:1200/1*Bp_WgSjbTHtQmoQO4SBhqA.png"/><meta data-rh="true" name="twitter:card" content="summary_large_image"/><meta data-rh="true" name="twitter:label1" content="Reading time"/><meta data-rh="true" name="twitter:data1" content="6 min read"/><link data-rh="true" rel="icon" href="https://miro.medium.com/v2/5d8de952517e8160e40ef9841c781cdc14a5db313057fa3c3de41c6f5b494b19"/><link data-rh="true" rel="search" type="application/opensearchdescription+xml" title="Medium" href="/osd.xml"/><link data-rh="true" rel="apple-touch-icon" sizes="152x152" href="https://miro.medium.com/v2/resize:fill:304:304/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156"/><link data-rh="true" rel="apple-touch-icon" sizes="120x120" href="https://miro.medium.com/v2/resize:fill:240:240/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156"/><link data-rh="true" rel="apple-touch-icon" sizes="76x76" href="https://miro.medium.com/v2/resize:fill:152:152/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156"/><link data-rh="true" rel="apple-touch-icon" sizes="60x60" href="https://miro.medium.com/v2/resize:fill:120:120/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156"/><link data-rh="true" rel="mask-icon" href="https://miro.medium.com/v2/resize:fill:1000:1000/7*GAOKVe--MXbEJmV9230oOQ.png" color="#171717"/><link data-rh="true" rel="preconnect" href="https://glyph.medium.com" crossOrigin=""/><link data-rh="true" id="glyph_preload_link" rel="preload" as="style" type="text/css" href="https://glyph.medium.com/css/unbound.css"/><link data-rh="true" id="glyph_link" rel="stylesheet" type="text/css" href="https://glyph.medium.com/css/unbound.css"/><link data-rh="true" rel="author" href="https://medium.com/@aprempeh_39888"/><link data-rh="true" rel="canonical" href="https://medium.com/googleplaydev/how-to-increase-app-quality-with-firebase-and-google-play-bccf59f8d92e"/><link data-rh="true" rel="alternate" href="android-app://com.medium.reader/https/medium.com/p/bccf59f8d92e"/><script data-rh="true" type="application/ld+json">{"@context":"http:\u002F\u002Fschema.org","@type":"NewsArticle","image":["https:\u002F\u002Fmiro.medium.com\u002Fv2\u002Fresize:fit:1200\u002F1*Bp_WgSjbTHtQmoQO4SBhqA.png"],"url":"https:\u002F\u002Fmedium.com\u002Fgoogleplaydev\u002Fhow-to-increase-app-quality-with-firebase-and-google-play-bccf59f8d92e","dateCreated":"2020-07-30T16:41:26.338Z","datePublished":"2020-07-30T16:41:26.338Z","dateModified":"2023-08-06T12:42:35.898Z","headline":"How to increase app quality with Firebase and Google Play","name":"How to increase app quality with Firebase and Google Play","description":"If you’ve ever published an app to Google Play, you may have experienced a moment of panic before release. “Is my app stable enough to handle thousands of users? Will it work as designed across…","identifier":"bccf59f8d92e","author":{"@type":"Person","name":"Akua Prempeh","url":"https:\u002F\u002Fmedium.com\u002F@aprempeh_39888"},"creator":["Akua Prempeh"],"publisher":{"@type":"Organization","name":"Google Play Apps & Games","url":"https:\u002F\u002Fmedium.com\u002Fgoogleplaydev","logo":{"@type":"ImageObject","width":272,"height":60,"url":"https:\u002F\u002Fmiro.medium.com\u002Fv2\u002Fresize:fit:544\u002F7*V1_7XP4snlmqrc_0Njontw.png"}},"mainEntityOfPage":"https:\u002F\u002Fmedium.com\u002Fgoogleplaydev\u002Fhow-to-increase-app-quality-with-firebase-and-google-play-bccf59f8d92e"}</script><style type="text/css" data-fela-rehydration="543" data-fela-type="STATIC">html{box-sizing:border-box;-webkit-text-size-adjust:100%}*, *:before, *:after{box-sizing:inherit}body{margin:0;padding:0;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:rgba(0,0,0,0.8);position:relative;min-height:100vh}h1, h2, h3, h4, h5, h6, dl, dd, ol, ul, menu, figure, blockquote, p, pre, form{margin:0}menu, ol, ul{padding:0;list-style:none;list-style-image:none}main{display:block}a{color:inherit;text-decoration:none}a, button, input{-webkit-tap-highlight-color:transparent}img, svg{vertical-align:middle}button{background:transparent;overflow:visible}button, input, optgroup, select, textarea{margin:0}:root{--reach-tabs:1;--reach-menu-button:1}#speechify-root{font-family:Sohne, sans-serif}div[data-popper-reference-hidden="true"]{visibility:hidden;pointer-events:none}.grecaptcha-badge{visibility:hidden} /*XCode style (c) Angel Garcia <angelgarcia.mail@gmail.com>*/.hljs {background: #fff;color: black; }/* Gray DOCTYPE selectors like WebKit */ .xml .hljs-meta {color: #c0c0c0; }.hljs-comment, .hljs-quote {color: #007400; }.hljs-tag, .hljs-attribute, .hljs-keyword, .hljs-selector-tag, .hljs-literal, .hljs-name {color: #aa0d91; }.hljs-variable, .hljs-template-variable {color: #3F6E74; }.hljs-code, .hljs-string, .hljs-meta .hljs-string {color: #c41a16; }.hljs-regexp, .hljs-link {color: #0E0EFF; }.hljs-title, .hljs-symbol, .hljs-bullet, .hljs-number {color: #1c00cf; }.hljs-section, .hljs-meta {color: #643820; }.hljs-title.class_, .hljs-class .hljs-title, .hljs-type, .hljs-built_in, .hljs-params {color: #5c2699; }.hljs-attr {color: #836C28; }.hljs-subst {color: #000; }.hljs-formula {background-color: #eee;font-style: italic; }.hljs-addition {background-color: #baeeba; }.hljs-deletion {background-color: #ffc8bd; }.hljs-selector-id, .hljs-selector-class {color: #9b703f; }.hljs-doctag, .hljs-strong {font-weight: bold; }.hljs-emphasis {font-style: italic; } </style><style type="text/css" data-fela-rehydration="543" data-fela-type="KEYFRAME">@-webkit-keyframes k1{0%{opacity:0.8}50%{opacity:0.5}100%{opacity:0.8}}@-moz-keyframes k1{0%{opacity:0.8}50%{opacity:0.5}100%{opacity:0.8}}@keyframes k1{0%{opacity:0.8}50%{opacity:0.5}100%{opacity:0.8}}</style><style type="text/css" data-fela-rehydration="543" data-fela-type="RULE">.a{font-family:medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif}.b{font-weight:400}.c{background-color:rgba(255, 255, 255, 1)}.l{display:block}.m{position:sticky}.n{top:0}.o{z-index:500}.p{padding:0 24px}.q{align-items:center}.r{border-bottom:solid 1px #F2F2F2}.y{height:41px}.z{line-height:20px}.ab{display:flex}.ac{height:57px}.ae{flex:1 0 auto}.af{color:inherit}.ag{fill:inherit}.ah{font-size:inherit}.ai{border:inherit}.aj{font-family:inherit}.ak{letter-spacing:inherit}.al{font-weight:inherit}.am{padding:0}.an{margin:0}.ao{cursor:pointer}.ap:disabled{cursor:not-allowed}.aq:disabled{color:#6B6B6B}.ar:disabled{fill:#6B6B6B}.au{width:auto}.av path{fill:#242424}.aw{height:25px}.ax{margin-left:16px}.ay{border:none}.az{border-radius:20px}.ba{width:240px}.bb{background:#F9F9F9}.bc path{fill:#6B6B6B}.be{outline:none}.bf{font-family:sohne, "Helvetica Neue", Helvetica, Arial, sans-serif}.bg{font-size:14px}.bh{width:100%}.bi{padding:10px 20px 10px 0}.bj{background-color:transparent}.bk{color:#242424}.bl::placeholder{color:#6B6B6B}.bm{display:inline-block}.bn{margin-left:12px}.bo{margin-right:12px}.bp{border-radius:4px}.bq{margin-left:24px}.br{height:24px}.bx{background-color:#F9F9F9}.by{border-radius:50%}.bz{height:32px}.ca{width:32px}.cb{justify-content:center}.ch{max-width:680px}.ci{min-width:0}.cj{animation:k1 1.2s ease-in-out infinite}.ck{height:100vh}.cl{margin-bottom:16px}.cm{margin-top:48px}.cn{align-items:flex-start}.co{flex-direction:column}.cp{justify-content:space-between}.cq{margin-bottom:24px}.cw{width:80%}.cx{background-color:#F2F2F2}.dd{height:44px}.de{width:44px}.df{margin:auto 0}.dg{margin-bottom:4px}.dh{height:16px}.di{width:120px}.dj{width:80px}.dp{margin-bottom:8px}.dq{width:96%}.dr{width:98%}.ds{width:81%}.dt{margin-left:8px}.du{color:#6B6B6B}.dv{font-size:13px}.dw{height:100%}.ep{color:#FFFFFF}.eq{fill:#FFFFFF}.er{background:rgba(66, 126, 255, 1)}.es{border-color:rgba(66, 126, 255, 1)}.ew:disabled{cursor:inherit !important}.ex:disabled{opacity:0.3}.ey:disabled:hover{background:rgba(66, 126, 255, 1)}.ez:disabled:hover{border-color:rgba(66, 126, 255, 1)}.fa{border-radius:99em}.fb{border-width:1px}.fc{border-style:solid}.fd{box-sizing:border-box}.fe{text-decoration:none}.ff{text-align:center}.fi{margin-right:32px}.fj{position:relative}.fk{fill:#6B6B6B}.fn{background:transparent}.fo svg{margin-left:4px}.fp svg{fill:#6B6B6B}.fr{box-shadow:inset 0 0 0 1px rgba(0, 0, 0, 0.05)}.fs{position:absolute}.fz{margin:0 24px}.gd{background:rgba(255, 255, 255, 1)}.ge{border:1px solid #F2F2F2}.gf{box-shadow:0 1px 4px #F2F2F2}.gg{max-height:100vh}.gh{overflow-y:auto}.gi{left:0}.gj{top:calc(100vh + 100px)}.gk{bottom:calc(100vh + 100px)}.gl{width:10px}.gm{pointer-events:none}.gn{word-break:break-word}.go{word-wrap:break-word}.gp:after{display:block}.gq:after{content:""}.gr:after{clear:both}.gs{clear:both}.gt{margin-top:0px}.gu{max-width:100%}.gv{height:auto}.gw{line-height:1.23}.gx{letter-spacing:0}.gy{font-style:normal}.gz{font-weight:700}.ie{align-items:baseline}.if{width:48px}.ig{height:48px}.ih{border:2px solid rgba(255, 255, 255, 1)}.ii{z-index:0}.ij{box-shadow:none}.ik{border:1px solid rgba(0, 0, 0, 0.05)}.il{margin-left:-12px}.im{width:28px}.in{height:28px}.io{z-index:1}.ip{width:24px}.iq{margin-bottom:2px}.ir{flex-wrap:nowrap}.is{font-size:16px}.it{line-height:24px}.iv{margin:0 8px}.iw{display:inline}.ix{color:rgba(66, 126, 255, 1)}.iy{fill:rgba(66, 126, 255, 1)}.jb{flex:0 0 auto}.je{flex-wrap:wrap}.jf{white-space:pre-wrap}.jg{margin-right:4px}.jh{overflow:hidden}.ji{max-height:20px}.jj{text-overflow:ellipsis}.jk{display:-webkit-box}.jl{-webkit-line-clamp:1}.jm{-webkit-box-orient:vertical}.jn{word-break:break-all}.jp{padding-left:8px}.jq{padding-right:8px}.kr> *{flex-shrink:0}.ks{overflow-x:scroll}.kt::-webkit-scrollbar{display:none}.ku{scrollbar-width:none}.kv{-ms-overflow-style:none}.kw{width:74px}.kx{flex-direction:row}.ky{z-index:2}.lb{-webkit-user-select:none}.lc{border:0}.ld{fill:rgba(117, 117, 117, 1)}.lg{outline:0}.lh{user-select:none}.li> svg{pointer-events:none}.lr{cursor:progress}.ls{margin-left:4px}.lt{opacity:1}.lu{padding:4px 0}.lx{width:16px}.lz{display:inline-flex}.mf{padding:8px 2px}.mg svg{color:#6B6B6B}.mx{line-height:1.58}.my{letter-spacing:-0.004em}.mz{font-family:source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif}.nu{margin-bottom:-0.46em}.nv{margin-left:auto}.nw{margin-right:auto}.nx{max-width:1226px}.oe{cursor:zoom-in}.of{z-index:auto}.oh{margin-top:10px}.oi{max-width:728px}.ol{font-style:inherit}.om{line-height:1.12}.on{letter-spacing:-0.022em}.oo{font-weight:600}.pj{margin-bottom:-0.28em}.pp{text-decoration:underline}.pq{font-style:italic}.pr{margin-bottom:26px}.ps{margin-top:6px}.pt{margin-top:8px}.pu{margin-right:8px}.pv{padding:8px 16px}.pw{border-radius:100px}.px{transition:background 300ms ease}.pz{white-space:nowrap}.qa{border-top:none}.qb{margin-bottom:50px}.qc{height:52px}.qd{max-height:52px}.qe{box-sizing:content-box}.qf{position:static}.qh{max-width:155px}.qn{margin-right:20px}.qo{margin-bottom:64px}.qp{margin-bottom:48px}.rd{border-radius:2px}.rf{height:64px}.rg{width:64px}.rh{align-self:flex-end}.ri{flex:1 1 auto}.ro{padding-right:4px}.rp{font-weight:500}.sc{margin-top:16px}.sd{color:rgba(255, 255, 255, 1)}.se{fill:rgba(255, 255, 255, 1)}.sf{background:rgba(25, 25, 25, 1)}.sg{border-color:rgba(25, 25, 25, 1)}.sj:disabled{opacity:0.1}.sk:disabled:hover{background:rgba(25, 25, 25, 1)}.sl:disabled:hover{border-color:rgba(25, 25, 25, 1)}.sr{height:0px}.ss{gap:18px}.st{fill:rgba(61, 61, 61, 1)}.sv{padding-bottom:6px}.sw{border-bottom:1px solid #F2F2F2}.tc{margin-top:32px}.td{fill:#242424}.te{background:0}.tf{border-color:#242424}.tg:disabled:hover{color:#242424}.th:disabled:hover{fill:#242424}.ti:disabled:hover{border-color:#242424}.tt{border-bottom:solid 1px #E5E5E5}.tu{margin-top:72px}.tv{padding:24px 0}.tw{margin-bottom:0px}.tx{margin-right:16px}.as:hover:not(:disabled){color:rgba(25, 25, 25, 1)}.at:hover:not(:disabled){fill:rgba(25, 25, 25, 1)}.et:hover{background:rgba(62, 110, 230, 1)}.eu:hover{border-color:rgba(62, 110, 230, 1)}.ev:hover{cursor:pointer}.fl:hover{color:#242424}.fm:hover{fill:#242424}.fq:hover svg{fill:#242424}.ft:hover{background-color:rgba(0, 0, 0, 0.1)}.iu:hover{text-decoration:underline}.iz:hover:not(:disabled){color:rgba(62, 110, 230, 1)}.ja:hover:not(:disabled){fill:rgba(62, 110, 230, 1)}.lf:hover{fill:rgba(8, 8, 8, 1)}.lv:hover{fill:#000000}.lw:hover p{color:#000000}.ly:hover{color:#000000}.mh:hover svg{color:#000000}.py:hover{background-color:#F2F2F2}.re:hover{background-color:none}.sh:hover{background:#000000}.si:hover{border-color:#242424}.su:hover{fill:rgba(25, 25, 25, 1)}.bd:focus-within path{fill:#242424}.le:focus{fill:rgba(8, 8, 8, 1)}.mi:focus svg{color:#000000}.og:focus{transform:scale(1.01)}.lj:active{border-style:none}</style><style type="text/css" data-fela-rehydration="543" data-fela-type="RULE" media="all and (min-width: 1080px)">.d{display:none}.bw{width:64px}.cg{margin:0 64px}.cv{height:48px}.dc{margin-bottom:52px}.do{margin-bottom:48px}.ef{font-size:14px}.eg{line-height:20px}.em{font-size:13px}.eo{padding:5px 12px}.fh{display:flex}.fy{margin-bottom:50px}.gc{max-width:680px}.hu{font-size:42px}.hv{margin-top:1em}.hw{margin-bottom:32px}.hx{line-height:52px}.hy{letter-spacing:-0.011em}.id{align-items:center}.kd{border-top:solid 1px #F2F2F2}.ke{border-bottom:solid 1px #F2F2F2}.kf{margin:32px 0 0}.kg{padding:3px 8px}.kp> *{margin-right:24px}.kq> :last-child{margin-right:0}.lq{margin-top:0px}.me{margin:0}.nq{font-size:20px}.nr{margin-top:2.14em}.ns{line-height:32px}.nt{letter-spacing:-0.003em}.oc{margin-top:56px}.pf{font-size:24px}.pg{margin-top:1.95em}.ph{line-height:30px}.pi{letter-spacing:-0.016em}.po{margin-top:0.94em}.qm{display:inline-block}.qq{flex-direction:row}.qt{margin-bottom:0}.qu{margin-right:20px}.rj{max-width:500px}.sa{line-height:24px}.sb{letter-spacing:0}.sq{margin-bottom:88px}.tb{margin:40px 0 16px}.tn{width:min-width}.ts{padding-top:72px}</style><style type="text/css" data-fela-rehydration="543" data-fela-type="RULE" media="all and (max-width: 1079.98px)">.e{display:none}.lp{margin-top:0px}.oj{margin-left:auto}.ok{text-align:center}.ql{display:inline-block}</style><style type="text/css" data-fela-rehydration="543" data-fela-type="RULE" media="all and (max-width: 903.98px)">.f{display:none}.lo{margin-top:0px}.qk{display:inline-block}</style><style type="text/css" data-fela-rehydration="543" data-fela-type="RULE" media="all and (max-width: 727.98px)">.g{display:none}.lm{margin-top:0px}.ln{margin-right:0px}.qj{display:inline-block}</style><style type="text/css" data-fela-rehydration="543" data-fela-type="RULE" media="all and (max-width: 551.98px)">.h{display:none}.s{display:flex}.t{justify-content:space-between}.bs{width:24px}.cc{margin:0 24px}.cr{height:40px}.cy{margin-bottom:44px}.dk{margin-bottom:32px}.dx{font-size:13px}.dy{line-height:20px}.eh{padding:0px 8px 1px}.fu{margin-bottom:2px}.ha{font-size:32px}.hb{margin-top:1.01em}.hc{margin-bottom:24px}.hd{line-height:38px}.he{letter-spacing:-0.014em}.hz{align-items:flex-start}.jc{flex-direction:column}.jr{margin:24px -24px 0}.js{padding:0}.kh> *{margin-right:8px}.ki> :last-child{margin-right:24px}.kz{margin-left:0px}.lk{margin-top:0px}.ll{margin-right:0px}.ma{margin:0}.mj{border:1px solid #F2F2F2}.mk{border-radius:99em}.ml{padding:0px 16px 0px 12px}.mm{height:38px}.mn{align-items:center}.mp svg{margin-right:8px}.na{font-size:18px}.nb{margin-top:1.56em}.nc{line-height:28px}.nd{letter-spacing:-0.003em}.ny{margin-top:40px}.op{font-size:20px}.oq{margin-top:1.2em}.or{line-height:24px}.os{letter-spacing:0}.pk{margin-top:0.67em}.qi{display:inline-block}.rb{margin-bottom:20px}.rc{margin-right:0}.rn{max-width:100%}.rq{font-size:24px}.rr{line-height:30px}.rs{letter-spacing:-0.016em}.sm{margin-bottom:64px}.sx{margin:32px 0 16px}.tj{width:100%}.to{padding-top:48px}.mo:hover{border-color:#E5E5E5}</style><style type="text/css" data-fela-rehydration="543" data-fela-type="RULE" media="all and (min-width: 904px) and (max-width: 1079.98px)">.i{display:none}.bv{width:64px}.cf{margin:0 64px}.cu{height:48px}.db{margin-bottom:52px}.dn{margin-bottom:48px}.ed{font-size:14px}.ee{line-height:20px}.ek{font-size:13px}.el{padding:5px 12px}.fg{display:flex}.fx{margin-bottom:50px}.gb{max-width:680px}.hp{font-size:42px}.hq{margin-top:1em}.hr{margin-bottom:32px}.hs{line-height:52px}.ht{letter-spacing:-0.011em}.ic{align-items:center}.jz{border-top:solid 1px #F2F2F2}.ka{border-bottom:solid 1px #F2F2F2}.kb{margin:32px 0 0}.kc{padding:3px 8px}.kn> *{margin-right:24px}.ko> :last-child{margin-right:0}.md{margin:0}.nm{font-size:20px}.nn{margin-top:2.14em}.no{line-height:32px}.np{letter-spacing:-0.003em}.ob{margin-top:56px}.pb{font-size:24px}.pc{margin-top:1.95em}.pd{line-height:30px}.pe{letter-spacing:-0.016em}.pn{margin-top:0.94em}.qr{flex-direction:row}.qv{margin-bottom:0}.qw{margin-right:20px}.rk{max-width:500px}.ry{line-height:24px}.rz{letter-spacing:0}.sp{margin-bottom:88px}.ta{margin:40px 0 16px}.tm{width:min-width}.tr{padding-top:72px}</style><style type="text/css" data-fela-rehydration="543" data-fela-type="RULE" media="all and (min-width: 728px) and (max-width: 903.98px)">.j{display:none}.w{display:flex}.x{justify-content:space-between}.bu{width:64px}.ce{margin:0 48px}.ct{height:48px}.da{margin-bottom:52px}.dm{margin-bottom:48px}.eb{font-size:13px}.ec{line-height:20px}.ej{padding:0px 8px 1px}.fw{margin-bottom:50px}.ga{max-width:680px}.hk{font-size:42px}.hl{margin-top:1em}.hm{margin-bottom:32px}.hn{line-height:52px}.ho{letter-spacing:-0.011em}.ib{align-items:center}.jv{border-top:solid 1px #F2F2F2}.jw{border-bottom:solid 1px #F2F2F2}.jx{margin:32px 0 0}.jy{padding:3px 8px}.kl> *{margin-right:24px}.km> :last-child{margin-right:0}.mc{margin:0}.ni{font-size:20px}.nj{margin-top:2.14em}.nk{line-height:32px}.nl{letter-spacing:-0.003em}.oa{margin-top:56px}.ox{font-size:24px}.oy{margin-top:1.95em}.oz{line-height:30px}.pa{letter-spacing:-0.016em}.pm{margin-top:0.94em}.qs{flex-direction:row}.qx{margin-bottom:0}.qy{margin-right:20px}.rl{max-width:500px}.rw{line-height:24px}.rx{letter-spacing:0}.so{margin-bottom:88px}.sz{margin:40px 0 16px}.tl{width:min-width}.tq{padding-top:72px}</style><style type="text/css" data-fela-rehydration="543" data-fela-type="RULE" media="all and (min-width: 552px) and (max-width: 727.98px)">.k{display:none}.u{display:flex}.v{justify-content:space-between}.bt{width:24px}.cd{margin:0 24px}.cs{height:40px}.cz{margin-bottom:44px}.dl{margin-bottom:32px}.dz{font-size:13px}.ea{line-height:20px}.ei{padding:0px 8px 1px}.fv{margin-bottom:2px}.hf{font-size:32px}.hg{margin-top:1.01em}.hh{margin-bottom:24px}.hi{line-height:38px}.hj{letter-spacing:-0.014em}.ia{align-items:flex-start}.jd{flex-direction:column}.jt{margin:24px 0 0}.ju{padding:0}.kj> *{margin-right:8px}.kk> :last-child{margin-right:8px}.la{margin-left:0px}.mb{margin:0}.mq{border:1px solid #F2F2F2}.mr{border-radius:99em}.ms{padding:0px 16px 0px 12px}.mt{height:38px}.mu{align-items:center}.mw svg{margin-right:8px}.ne{font-size:18px}.nf{margin-top:1.56em}.ng{line-height:28px}.nh{letter-spacing:-0.003em}.nz{margin-top:40px}.ot{font-size:20px}.ou{margin-top:1.2em}.ov{line-height:24px}.ow{letter-spacing:0}.pl{margin-top:0.67em}.qz{margin-bottom:20px}.ra{margin-right:0}.rm{max-width:100%}.rt{font-size:24px}.ru{line-height:30px}.rv{letter-spacing:-0.016em}.sn{margin-bottom:64px}.sy{margin:32px 0 16px}.tk{width:100%}.tp{padding-top:48px}.mv:hover{border-color:#E5E5E5}</style><style type="text/css" data-fela-rehydration="543" data-fela-type="RULE" media="print">.qg{display:none}</style><style type="text/css" data-fela-rehydration="543" data-fela-type="RULE" media="(orientation: landscape) and (max-width: 903.98px)">.jo{max-height:none}</style><style type="text/css" data-fela-rehydration="543" data-fela-type="RULE" media="(prefers-reduced-motion: no-preference)">.od{transition:transform 300ms cubic-bezier(0.2, 0, 0.2, 1)}</style></head><body><div id="root"><div class="a b c"><div class="d e f g h i j k"></div><script>document.domain = document.domain;</script><div class="l c"><div class="l m n o c"><div class="p q r s t u v w x i d y z"><a class="du ag dv bf ak b am an ao ap aq ar as at s u w i d q dw z" href="https://rsci.app.link/?%24canonical_url=https%3A%2F%2Fmedium.com%2Fp%2Fbccf59f8d92e&amp;%7Efeature=LoOpenInAppButton&amp;%7Echannel=ShowPostUnderCollection&amp;source=---top_nav_layout_nav-----------------------------------------" rel="noopener follow">Open in app<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" fill="none" viewBox="0 0 10 10" class="dt"><path fill="currentColor" d="M.985 8.485a.375.375 0 1 0 .53.53zM8.75 1.25h.375A.375.375 0 0 0 8.75.875zM8.375 6.5a.375.375 0 1 0 .75 0zM3.5.875a.375.375 0 1 0 0 .75zm-1.985 8.14 7.5-7.5-.53-.53-7.5 7.5zm6.86-7.765V6.5h.75V1.25zM3.5 1.625h5.25v-.75H3.5z"></path></svg></a><div class="ab q"><p class="bf b dx dy dz ea eb ec ed ee ef eg du"><span><button class="bf b dx dy eh dz ea ei eb ec ej ek ee el em eg eo ep eq er es et eu ev ew ex ey ez fa fb fc fd bm fe ff" data-testid="headerSignUpButton">Sign up</button></span></p><div class="ax l"><p class="bf b dx dy dz ea eb ec ed ee ef eg du"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" data-testid="headerSignInButton" rel="noopener follow" href="/m/signin?operation=login&amp;redirect=https%3A%2F%2Fmedium.com%2Fgoogleplaydev%2Fhow-to-increase-app-quality-with-firebase-and-google-play-bccf59f8d92e&amp;source=post_page---top_nav_layout_nav-----------------------global_nav------------------">Sign in</a></span></p></div></div></div><div class="p q r ab ac"><div class="ab q ae"><a class="af ag ah ai aj ak al am an ao ap aq ar as at ab" aria-label="Homepage" data-testid="headerMediumLogo" rel="noopener follow" href="/?source=---top_nav_layout_nav-----------------------------------------"><svg xmlns="http://www.w3.org/2000/svg" width="719" height="160" fill="none" viewBox="0 0 719 160" class="au av aw"><path fill="#242424" d="m174.104 9.734.215-.047V8.02H130.39L89.6 103.89 48.81 8.021H1.472v1.666l.212.047c8.018 1.81 12.09 4.509 12.09 14.242V137.93c0 9.734-4.087 12.433-12.106 14.243l-.212.047v1.671h32.118v-1.665l-.213-.048c-8.018-1.809-12.089-4.509-12.089-14.242V30.586l52.399 123.305h2.972l53.925-126.743V140.75c-.687 7.688-4.721 10.062-11.982 11.701l-.215.05v1.652h55.948v-1.652l-.215-.05c-7.269-1.639-11.4-4.013-12.087-11.701l-.037-116.774h.037c0-9.733 4.071-12.432 12.087-14.242m25.555 75.488c.915-20.474 8.268-35.252 20.606-35.507 3.806.063 6.998 1.312 9.479 3.714 5.272 5.118 7.751 15.812 7.368 31.793zm-.553 5.77h65.573v-.275c-.186-15.656-4.721-27.834-13.466-36.196-7.559-7.227-18.751-11.203-30.507-11.203h-.263c-6.101 0-13.584 1.48-18.909 4.16-6.061 2.807-11.407 7.003-15.855 12.511-7.161 8.874-11.499 20.866-12.554 34.343q-.05.606-.092 1.212a50 50 0 0 0-.065 1.151 85.807 85.807 0 0 0-.094 5.689c.71 30.524 17.198 54.917 46.483 54.917 25.705 0 40.675-18.791 44.407-44.013l-1.886-.664c-6.557 13.556-18.334 21.771-31.738 20.769-18.297-1.369-32.314-19.922-31.042-42.395m139.722 41.359c-2.151 5.101-6.639 7.908-12.653 7.908s-11.513-4.129-15.418-11.63c-4.197-8.053-6.405-19.436-6.405-32.92 0-28.067 8.729-46.22 22.24-46.22 5.657 0 10.111 2.807 12.236 7.704zm43.499 20.008c-8.019-1.897-12.089-4.722-12.089-14.951V1.309l-48.716 14.353v1.757l.299-.024c6.72-.543 11.278.386 13.925 2.83 2.072 1.915 3.082 4.853 3.082 8.987v18.66c-4.803-3.067-10.516-4.56-17.448-4.56-14.059 0-26.909 5.92-36.176 16.672-9.66 11.205-14.767 26.518-14.767 44.278-.003 31.72 15.612 53.039 38.851 53.039 13.595 0 24.533-7.449 29.54-20.013v16.865h43.711v-1.746zM424.1 19.819c0-9.904-7.468-17.374-17.375-17.374-9.859 0-17.573 7.632-17.573 17.374s7.721 17.374 17.573 17.374c9.907 0 17.375-7.47 17.375-17.374m11.499 132.546c-8.019-1.897-12.089-4.722-12.089-14.951h-.035V43.635l-43.714 12.551v1.705l.263.024c9.458.842 12.047 4.1 12.047 15.152v81.086h43.751v-1.746zm112.013 0c-8.018-1.897-12.089-4.722-12.089-14.951V43.635l-41.621 12.137v1.71l.246.026c7.733.813 9.967 4.257 9.967 15.36v59.279c-2.578 5.102-7.415 8.131-13.274 8.336-9.503 0-14.736-6.419-14.736-18.073V43.638l-43.714 12.55v1.703l.262.024c9.459.84 12.05 4.097 12.05 15.152v50.17a56.3 56.3 0 0 0 .91 10.444l.787 3.423c3.701 13.262 13.398 20.197 28.59 20.197 12.868 0 24.147-7.966 29.115-20.43v17.311h43.714v-1.747zm169.818 1.788v-1.749l-.213-.05c-8.7-2.006-12.089-5.789-12.089-13.49v-63.79c0-19.89-11.171-31.761-29.883-31.761-13.64 0-25.141 7.882-29.569 20.16-3.517-13.01-13.639-20.16-28.606-20.16-13.146 0-23.449 6.938-27.869 18.657V43.643L545.487 55.68v1.715l.263.024c9.345.829 12.047 4.181 12.047 14.95v81.784h40.787v-1.746l-.215-.053c-6.941-1.631-9.181-4.606-9.181-12.239V66.998c1.836-4.289 5.537-9.37 12.853-9.37 9.086 0 13.692 6.296 13.692 18.697v77.828h40.797v-1.746l-.215-.053c-6.94-1.631-9.18-4.606-9.18-12.239V75.066a42 42 0 0 0-.578-7.26c1.947-4.661 5.86-10.177 13.475-10.177 9.214 0 13.691 6.114 13.691 18.696v77.828z"></path></svg></a><div class="ax h"><div class="ab ay az ba bb q bc bd"><div class="bm" aria-hidden="false" aria-describedby="searchResults" aria-labelledby="searchResults"></div><div class="bn bo ab"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M4.092 11.06a6.95 6.95 0 1 1 13.9 0 6.95 6.95 0 0 1-13.9 0m6.95-8.05a8.05 8.05 0 1 0 5.13 14.26l3.75 3.75a.56.56 0 1 0 .79-.79l-3.73-3.73A8.05 8.05 0 0 0 11.042 3z" clip-rule="evenodd"></path></svg></div><input role="combobox" aria-controls="searchResults" aria-expanded="false" aria-label="search" data-testid="headerSearchInput" tabindex="0" class="ay be bf bg z bh bi bj bk bl" placeholder="Search" value=""/></div></div></div><div class="h k w fg fh"><div class="fi ab"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" data-testid="headerWriteButton" rel="noopener follow" href="/m/signin?operation=register&amp;redirect=https%3A%2F%2Fmedium.com%2Fnew-story&amp;source=---top_nav_layout_nav-----------------------new_post_topnav------------------"><div class="bf b bg z du fj fk ab q fl fm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" aria-label="Write"><path fill="currentColor" d="M14 4a.5.5 0 0 0 0-1zm7 6a.5.5 0 0 0-1 0zm-7-7H4v1h10zM3 4v16h1V4zm1 17h16v-1H4zm17-1V10h-1v10zm-1 1a1 1 0 0 0 1-1h-1zM3 20a1 1 0 0 0 1 1v-1zM4 3a1 1 0 0 0-1 1h1z"></path><path stroke="currentColor" d="m17.5 4.5-8.458 8.458a.25.25 0 0 0-.06.098l-.824 2.47a.25.25 0 0 0 .316.316l2.47-.823a.25.25 0 0 0 .098-.06L19.5 6.5m-2-2 2.323-2.323a.25.25 0 0 1 .354 0l1.646 1.646a.25.25 0 0 1 0 .354L19.5 6.5m-2-2 2 2"></path></svg><div class="dt l">Write</div></div></a></span></div></div><div class="k j i d"><div class="fi ab"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" data-testid="headerSearchButton" rel="noopener follow" href="/search?source=---top_nav_layout_nav-----------------------------------------"><div class="bf b bg z du fj fk ab q fl fm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" aria-label="Search"><path fill="currentColor" fill-rule="evenodd" d="M4.092 11.06a6.95 6.95 0 1 1 13.9 0 6.95 6.95 0 0 1-13.9 0m6.95-8.05a8.05 8.05 0 1 0 5.13 14.26l3.75 3.75a.56.56 0 1 0 .79-.79l-3.73-3.73A8.05 8.05 0 0 0 11.042 3z" clip-rule="evenodd"></path></svg></div></a></div></div><div class="fi h k j"><div class="ab q"><p class="bf b dx dy dz ea eb ec ed ee ef eg du"><span><button class="bf b dx dy eh dz ea ei eb ec ej ek ee el em eg eo ep eq er es et eu ev ew ex ey ez fa fb fc fd bm fe ff" data-testid="headerSignUpButton">Sign up</button></span></p><div class="ax l"><p class="bf b dx dy dz ea eb ec ed ee ef eg du"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" data-testid="headerSignInButton" rel="noopener follow" href="/m/signin?operation=login&amp;redirect=https%3A%2F%2Fmedium.com%2Fgoogleplaydev%2Fhow-to-increase-app-quality-with-firebase-and-google-play-bccf59f8d92e&amp;source=post_page---top_nav_layout_nav-----------------------global_nav------------------">Sign in</a></span></p></div></div></div><div class="l" aria-hidden="false"><button class="ay fn am ab q ao fo fp fq" aria-label="user options menu" data-testid="headerUserIcon"><div class="l fj"><img alt="" class="l fd by bz ca cx" src="https://miro.medium.com/v2/resize:fill:64:64/1*dmbNkD5D-u45r44go_cf0g.png" width="32" height="32" loading="lazy" role="presentation"/><div class="fr by l bz ca fs n ay ft"></div></div></button></div></div></div><div class="l"><div class="fu fv fw fx fy l"><div class="ab cb"><div class="ci bh fz ga gb gc"></div></div><article><div class="l"><div class="l"><span class="l"></span><section><div><div class="fs gi gj gk gl gm"></div><div class="gn go gp gq gr"><div class="gs bh"><figure class="gt gs bh paragraph-image"><picture><source srcSet="https://miro.medium.com/v2/resize:fit:640/format:webp/1*Bp_WgSjbTHtQmoQO4SBhqA.png 640w, https://miro.medium.com/v2/resize:fit:720/format:webp/1*Bp_WgSjbTHtQmoQO4SBhqA.png 720w, https://miro.medium.com/v2/resize:fit:750/format:webp/1*Bp_WgSjbTHtQmoQO4SBhqA.png 750w, https://miro.medium.com/v2/resize:fit:786/format:webp/1*Bp_WgSjbTHtQmoQO4SBhqA.png 786w, https://miro.medium.com/v2/resize:fit:828/format:webp/1*Bp_WgSjbTHtQmoQO4SBhqA.png 828w, https://miro.medium.com/v2/resize:fit:1100/format:webp/1*Bp_WgSjbTHtQmoQO4SBhqA.png 1100w, https://miro.medium.com/v2/resize:fit:4800/format:webp/1*Bp_WgSjbTHtQmoQO4SBhqA.png 4800w" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 100vw" type="image/webp"/><source data-testid="og" srcSet="https://miro.medium.com/v2/resize:fit:640/1*Bp_WgSjbTHtQmoQO4SBhqA.png 640w, https://miro.medium.com/v2/resize:fit:720/1*Bp_WgSjbTHtQmoQO4SBhqA.png 720w, https://miro.medium.com/v2/resize:fit:750/1*Bp_WgSjbTHtQmoQO4SBhqA.png 750w, https://miro.medium.com/v2/resize:fit:786/1*Bp_WgSjbTHtQmoQO4SBhqA.png 786w, https://miro.medium.com/v2/resize:fit:828/1*Bp_WgSjbTHtQmoQO4SBhqA.png 828w, https://miro.medium.com/v2/resize:fit:1100/1*Bp_WgSjbTHtQmoQO4SBhqA.png 1100w, https://miro.medium.com/v2/resize:fit:4800/1*Bp_WgSjbTHtQmoQO4SBhqA.png 4800w" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 100vw"/><img alt="" class="bh gu gv c" width="2400" height="1300" loading="eager" role="presentation"/></picture></figure></div><div class="ab cb"><div class="ci bh fz ga gb gc"><div><h1 id="b08e" class="pw-post-title gw gx gy bf gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy bk" data-testid="storyTitle">How to increase app quality with Firebase and Google Play</h1><div><div class="speechify-ignore ab cp"><div class="speechify-ignore bh l"><div class="hz ia ib ic id ab"><div><div class="ab ie"><div><div class="bm" aria-hidden="false"><a rel="noopener follow" href="/@aprempeh_39888?source=post_page---byline--bccf59f8d92e---------------------------------------"><div class="l if ig by ih ii"><div class="l fj"><img alt="Akua Prempeh" class="l fd by dd de cx" src="https://miro.medium.com/v2/da:true/resize:fill:88:88/0*h2W1JQNSMMIC24xc" width="44" height="44" loading="lazy" data-testid="authorPhoto"/><div class="ij by l dd de fs n ik ft"></div></div></div></a></div></div><div class="il ab fj"><div><div class="bm" aria-hidden="false"><a href="https://medium.com/googleplaydev?source=post_page---byline--bccf59f8d92e---------------------------------------" rel="noopener follow"><div class="l im in by ih io"><div class="l fj"><img alt="Google Play Apps &amp; Games" class="l fd by br ip cx" src="https://miro.medium.com/v2/resize:fill:48:48/1*PwgNVOb5tR6qM0jJxqrIkw.jpeg" width="24" height="24" loading="lazy" data-testid="publicationPhoto"/><div class="ij by l br ip fs n ik ft"></div></div></div></a></div></div></div></div></div><div class="bn bh l"><div class="ab"><div style="flex:1"><span class="bf b bg z bk"><div class="iq ab q"><div class="ab q ir"><div class="ab q"><div><div class="bm" aria-hidden="false"><p class="bf b is it bk"><a class="af ag ah ai aj ak al am an ao ap aq ar iu" data-testid="authorName" rel="noopener follow" href="/@aprempeh_39888?source=post_page---byline--bccf59f8d92e---------------------------------------">Akua Prempeh</a></p></div></div></div><span class="iv iw" aria-hidden="true"><span class="bf b bg z du">·</span></span><p class="bf b is it du"><span><a class="ix iy ah ai aj ak al am an ao ap aq ar ex iz ja" rel="noopener follow" href="/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fsubscribe%2Fuser%2Fce38255695e2&amp;operation=register&amp;redirect=https%3A%2F%2Fmedium.com%2Fgoogleplaydev%2Fhow-to-increase-app-quality-with-firebase-and-google-play-bccf59f8d92e&amp;user=Akua+Prempeh&amp;userId=ce38255695e2&amp;source=post_page-ce38255695e2--byline--bccf59f8d92e---------------------post_header------------------">Follow</a></span></p></div></div></span></div></div><div class="l jb"><span class="bf b bg z du"><div class="ab cn jc jd je"><div class="fu fv ab"><div class="bf b bg z du ab jf"><span class="jg l jb">Published in</span><div><div class="l" aria-hidden="false"><a class="af ag ah ai aj ak al am an ao ap aq ar iu ab q" data-testid="publicationName" href="https://medium.com/googleplaydev?source=post_page---byline--bccf59f8d92e---------------------------------------" rel="noopener follow"><p class="bf b bg z jh ji jj jk jl jm jn jo bk">Google Play Apps &amp; Games</p></a></div></div></div><div class="h k"><span class="iv iw" aria-hidden="true"><span class="bf b bg z du">·</span></span></div></div><span class="bf b bg z du"><div class="ab ae"><span data-testid="storyReadTime">6 min read</span><div class="jp jq l" aria-hidden="true"><span class="l" aria-hidden="true"><span class="bf b bg z du">·</span></span></div><span data-testid="storyPublishDate">Jul 30, 2020</span></div></span></div></span></div></div></div><div class="ab cp jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg"><div class="h k w fg fh q"><div class="kw l"><div class="ab q kx ky"><div class="pw-multi-vote-icon fj jg kz la lb"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" data-testid="headerClapButton" rel="noopener follow" href="/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fvote%2Fgoogleplaydev%2Fbccf59f8d92e&amp;operation=register&amp;redirect=https%3A%2F%2Fmedium.com%2Fgoogleplaydev%2Fhow-to-increase-app-quality-with-firebase-and-google-play-bccf59f8d92e&amp;user=Akua+Prempeh&amp;userId=ce38255695e2&amp;source=---header_actions--bccf59f8d92e---------------------clap_footer------------------"><div><div class="bm" aria-hidden="false"><div class="lc ao ld le lf lg am lh li lj lb"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" aria-label="clap"><path fill-rule="evenodd" d="M11.37.828 12 3.282l.63-2.454zM13.916 3.953l1.523-2.112-1.184-.39zM8.589 1.84l1.522 2.112-.337-2.501zM18.523 18.92c-.86.86-1.75 1.246-2.62 1.33a6 6 0 0 0 .407-.372c2.388-2.389 2.86-4.951 1.399-7.623l-.912-1.603-.79-1.672c-.26-.56-.194-.98.203-1.288a.7.7 0 0 1 .546-.132c.283.046.546.231.728.5l2.363 4.157c.976 1.624 1.141 4.237-1.324 6.702m-10.999-.438L3.37 14.328a.828.828 0 0 1 .585-1.408.83.83 0 0 1 .585.242l2.158 2.157a.365.365 0 0 0 .516-.516l-2.157-2.158-1.449-1.449a.826.826 0 0 1 1.167-1.17l3.438 3.44a.363.363 0 0 0 .516 0 .364.364 0 0 0 0-.516L5.293 9.513l-.97-.97a.826.826 0 0 1 0-1.166.84.84 0 0 1 1.167 0l.97.968 3.437 3.436a.36.36 0 0 0 .517 0 .366.366 0 0 0 0-.516L6.977 7.83a.82.82 0 0 1-.241-.584.82.82 0 0 1 .824-.826c.219 0 .43.087.584.242l5.787 5.787a.366.366 0 0 0 .587-.415l-1.117-2.363c-.26-.56-.194-.98.204-1.289a.7.7 0 0 1 .546-.132c.283.046.545.232.727.501l2.193 3.86c1.302 2.38.883 4.59-1.277 6.75-1.156 1.156-2.602 1.627-4.19 1.367-1.418-.236-2.866-1.033-4.079-2.246M10.75 5.971l2.12 2.12c-.41.502-.465 1.17-.128 1.89l.22.465-3.523-3.523a.8.8 0 0 1-.097-.368c0-.22.086-.428.241-.584a.847.847 0 0 1 1.167 0m7.355 1.705c-.31-.461-.746-.758-1.23-.837a1.44 1.44 0 0 0-1.11.275c-.312.24-.505.543-.59.881a1.74 1.74 0 0 0-.906-.465 1.47 1.47 0 0 0-.82.106l-2.182-2.182a1.56 1.56 0 0 0-2.2 0 1.54 1.54 0 0 0-.396.701 1.56 1.56 0 0 0-2.21-.01 1.55 1.55 0 0 0-.416.753c-.624-.624-1.649-.624-2.237-.037a1.557 1.557 0 0 0 0 2.2c-.239.1-.501.238-.715.453a1.56 1.56 0 0 0 0 2.2l.516.515a1.556 1.556 0 0 0-.753 2.615L7.01 19c1.32 1.319 2.909 2.189 4.475 2.449q.482.08.971.08c.85 0 1.653-.198 2.393-.579.231.033.46.054.686.054 1.266 0 2.457-.52 3.505-1.567 2.763-2.763 2.552-5.734 1.439-7.586z" clip-rule="evenodd"></path></svg></div></div></div></a></span></div><div class="pw-multi-vote-count l lk ll lm ln lo lp lq"><p class="bf b dv z du"><span class="lr">--</span></p></div></div></div><div><div class="bm" aria-hidden="false"><button class="ao lc lt lu ab q fk lv lw" aria-label="responses"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" class="gt"><path d="M18.006 16.803c1.533-1.456 2.234-3.325 2.234-5.321C20.24 7.357 16.709 4 12.191 4S4 7.357 4 11.482c0 4.126 3.674 7.482 8.191 7.482.817 0 1.622-.111 2.393-.327.231.2.48.391.744.559 1.06.693 2.203 1.044 3.399 1.044.224-.008.4-.112.486-.287a.49.49 0 0 0-.042-.518c-.495-.67-.845-1.364-1.04-2.057a4 4 0 0 1-.125-.598zm-3.122 1.055-.067-.223-.315.096a8 8 0 0 1-2.311.338c-4.023 0-7.292-2.955-7.292-6.587 0-3.633 3.269-6.588 7.292-6.588 4.014 0 7.112 2.958 7.112 6.593 0 1.794-.608 3.469-2.027 4.72l-.195.168v.255c0 .056 0 .151.016.295.025.231.081.478.154.733.154.558.398 1.117.722 1.659a5.3 5.3 0 0 1-2.165-.845c-.276-.176-.714-.383-.941-.59z"></path></svg><p class="bf b dv z du"><span class="pw-responses-count ls gt">1</span></p></button></div></div></div><div class="ab q kh ki kj kk kl km kn ko kp kq kr ks kt ku kv"><div class="lx k j i d"></div><div class="h k"><div><div class="bm" aria-hidden="false"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" data-testid="headerBookmarkButton" rel="noopener follow" href="/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2Fbccf59f8d92e&amp;operation=register&amp;redirect=https%3A%2F%2Fmedium.com%2Fgoogleplaydev%2Fhow-to-increase-app-quality-with-firebase-and-google-play-bccf59f8d92e&amp;source=---header_actions--bccf59f8d92e---------------------bookmark_footer------------------"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="du ly" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div><div class="fd lz cn"><div class="l ae"><div class="ab cb"><div class="ma mb mc md me gu ci bh"><div class="ab"><div class="bm" aria-hidden="false"><div><div class="bm" aria-hidden="false"><button aria-label="Listen" data-testid="audioPlayButton" class="af fk ah ai aj ak al mf an ao ap ex mg mh lw mi mj mk ml mm s mn mo mp mq mr ms mt u mu mv mw"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M3 12a9 9 0 1 1 18 0 9 9 0 0 1-18 0m9-10C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m3.376 10.416-4.599 3.066a.5.5 0 0 1-.777-.416V8.934a.5.5 0 0 1 .777-.416l4.599 3.066a.5.5 0 0 1 0 .832" clip-rule="evenodd"></path></svg><div class="j i d"><p class="bf b bg z du">Listen</p></div></button></div></div></div></div></div></div></div></div><div class="bm" aria-hidden="false" aria-describedby="postFooterSocialMenu" aria-labelledby="postFooterSocialMenu"><div><div class="bm" aria-hidden="false"><button aria-controls="postFooterSocialMenu" aria-expanded="false" aria-label="Share Post" data-testid="headerSocialShareButton" class="af fk ah ai aj ak al mf an ao ap ex mg mh lw mi mj mk ml mm s mn mo mp mq mr ms mt u mu mv mw"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M15.218 4.931a.4.4 0 0 1-.118.132l.012.006a.45.45 0 0 1-.292.074.5.5 0 0 1-.3-.13l-2.02-2.02v7.07c0 .28-.23.5-.5.5s-.5-.22-.5-.5v-7.04l-2 2a.45.45 0 0 1-.57.04h-.02a.4.4 0 0 1-.16-.3.4.4 0 0 1 .1-.32l2.8-2.8a.5.5 0 0 1 .7 0l2.8 2.79a.42.42 0 0 1 .068.498m-.106.138.008.004v-.01zM16 7.063h1.5a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-11c-1.1 0-2-.9-2-2v-10a2 2 0 0 1 2-2H8a.5.5 0 0 1 .35.15.5.5 0 0 1 .15.35.5.5 0 0 1-.15.35.5.5 0 0 1-.35.15H6.4c-.5 0-.9.4-.9.9v10.2a.9.9 0 0 0 .9.9h11.2c.5 0 .9-.4.9-.9v-10.2c0-.5-.4-.9-.9-.9H16a.5.5 0 0 1 0-1" clip-rule="evenodd"></path></svg><div class="j i d"><p class="bf b bg z du">Share</p></div></button></div></div></div></div></div></div></div></div></div><p id="bf58" class="pw-post-body-paragraph mx my gy mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gn bk">If you’ve ever published an app to Google Play, you may have experienced a moment of panic before release. “Is my app stable enough to handle thousands of users? Will it work as designed across devices?” If you’ve had thoughts like these when shipping your app, don’t worry, you’re not alone. Shipping your app doesn’t have to be a stressful experience and there are tools you can use to ensure your apps are stable and high performing.</p><p id="3661" class="pw-post-body-paragraph mx my gy mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gn bk">You may already be using Google Play app quality tools, such as Android vitals and pre-launch reports in your release workflows, but using Firebase and Google Play quality tools together can take your app quality to the next level. Google Play quality tools provide a holistic view of your app’s stability while Firebase quality tools, such as App Distribution, Crashlytics, Test Lab and Performance Monitoring, offer additional customization and more in-depth insights. The combined use of Google Play and Firebase quality tools provides you with actionable insight on your app’s stability and performance before, during, and after launch so you can be confident knowing your users are experiencing the best version of your app.</p><p id="c589" class="pw-post-body-paragraph mx my gy mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gn bk">In this article, I’ll cover how to use Firebase app quality tools together with Google Play quality tools to improve user’s experience in your app.</p><figure class="ny nz oa ob oc gs nv nw paragraph-image"><div role="button" tabindex="0" class="od oe fj of bh og"><div class="nv nw nx"><picture><source srcSet="https://miro.medium.com/v2/resize:fit:640/format:webp/1*b8z0g4TWrkhZ1FikmBUfpw.png 640w, https://miro.medium.com/v2/resize:fit:720/format:webp/1*b8z0g4TWrkhZ1FikmBUfpw.png 720w, https://miro.medium.com/v2/resize:fit:750/format:webp/1*b8z0g4TWrkhZ1FikmBUfpw.png 750w, https://miro.medium.com/v2/resize:fit:786/format:webp/1*b8z0g4TWrkhZ1FikmBUfpw.png 786w, https://miro.medium.com/v2/resize:fit:828/format:webp/1*b8z0g4TWrkhZ1FikmBUfpw.png 828w, https://miro.medium.com/v2/resize:fit:1100/format:webp/1*b8z0g4TWrkhZ1FikmBUfpw.png 1100w, https://miro.medium.com/v2/resize:fit:1400/format:webp/1*b8z0g4TWrkhZ1FikmBUfpw.png 1400w" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" type="image/webp"/><source data-testid="og" srcSet="https://miro.medium.com/v2/resize:fit:640/1*b8z0g4TWrkhZ1FikmBUfpw.png 640w, https://miro.medium.com/v2/resize:fit:720/1*b8z0g4TWrkhZ1FikmBUfpw.png 720w, https://miro.medium.com/v2/resize:fit:750/1*b8z0g4TWrkhZ1FikmBUfpw.png 750w, https://miro.medium.com/v2/resize:fit:786/1*b8z0g4TWrkhZ1FikmBUfpw.png 786w, https://miro.medium.com/v2/resize:fit:828/1*b8z0g4TWrkhZ1FikmBUfpw.png 828w, https://miro.medium.com/v2/resize:fit:1100/1*b8z0g4TWrkhZ1FikmBUfpw.png 1100w, https://miro.medium.com/v2/resize:fit:1400/1*b8z0g4TWrkhZ1FikmBUfpw.png 1400w" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px"/><img alt="" class="bh gu gv c" width="700" height="264" loading="eager" role="presentation"/></picture></div></div><figcaption class="oh ff oi nv nw oj ok bf b bg z du"><em class="ol">Table listing out Google Play and Firebase tools that help improve your app quality</em></figcaption></figure><h1 id="18e6" class="om on gy bf oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj bk"><strong class="al">Gather feedback from internal teams and external users</strong></h1><p id="4d27" class="pw-post-body-paragraph mx my gy mz b na pk nc nd ne pl ng nh ni pm nk nl nm pn no np nq po ns nt nu gn bk">One of the best ways to identify and fix bugs is through feedback from trusted testers, but user testing can be a clunky process. You have to recruit testers, find ways to distribute your test builds and grant testers access. <a class="af pp" href="https://firebase.google.com/products/app-distribution" rel="noopener ugc nofollow" target="_blank"><strong class="mz gz">Firebase App Distribution</strong></a>, a pre-release testing tool, provides you with the flexibility to easily distribute your test builds among trusted testers on Android and iOS using the Firebase console or your CI servers so you can collect early feedback and uncover bugs. Also, with no SDK to install, you can get your testers up and running quickly. If you’re looking to test specific Play formats such as App Bundles, you can use <a class="af pp" href="https://play.google.com/console/about/internalappsharing/" rel="noopener ugc nofollow" target="_blank"><strong class="mz gz">Google Play Internal App Sharing</strong></a><strong class="mz gz"> </strong>to quickly upload and share your test builds with your internal team.</p><p id="ba2f" class="pw-post-body-paragraph mx my gy mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gn bk">When you’re done with internal testing and want to gather more feedback at scale, use Google Play’s <a class="af pp" href="https://play.google.com/console/about/opentesting/" rel="noopener ugc nofollow" target="_blank"><strong class="mz gz">open</strong></a> and <a class="af pp" href="https://play.google.com/console/about/closed-testing/" rel="noopener ugc nofollow" target="_blank"><strong class="mz gz">closed</strong></a><strong class="mz gz"> </strong>testing tracks to target your most engaged users for a final quality check before releasing a new feature. With open and closed testing you get direct feedback from external users without impacting your ratings or reviews on Google Play. For example, <a class="af pp" href="https://developer.android.com/stories/games/panzerdog" rel="noopener ugc nofollow" target="_blank"><strong class="mz gz">Panzerdog</strong></a>, a game developer, improved retention using closed testing to gather feedback on issues they weren’t originally focused on, such as overall performance and controls. You can find some more best practices on using testing tracks <a class="af pp" href="https://developer.android.com/distribute/best-practices/launch/test-tracks" rel="noopener ugc nofollow" target="_blank"><strong class="mz gz">here</strong></a>.</p><h1 id="691d" class="om on gy bf oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj bk"><strong class="al">Test your app on different devices</strong></h1><p id="aa7e" class="pw-post-body-paragraph mx my gy mz b na pk nc nd ne pl ng nh ni pm nk nl nm pn no np nq po ns nt nu gn bk">With so many Android devices on the market, it’s important to test your app on a variety of devices to ensure it functions as intended for all users. You may already use <a class="af pp" href="https://play.google.com/console/about/pre-launchreports/" rel="noopener ugc nofollow" target="_blank"><strong class="mz gz">pre-launch reports</strong></a> on the Google Play Console to run tests on <em class="pq">pre-selected</em> devices. However, you might want a little more flexibility, given you know your users best and what devices are most popular with them. <a class="af pp" href="https://firebase.google.com/products/test-lab" rel="noopener ugc nofollow" target="_blank"><strong class="mz gz">Firebase Test Lab</strong></a> allows you to run custom ad-hoc tests at any point in development on a myriad of <em class="pq">self-selected</em> physical and virtual devices.</p><p id="1b62" class="pw-post-body-paragraph mx my gy mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gn bk">Both pre-launch reports and Firebase Test Lab offer <a class="af pp" href="https://firebase.google.com/docs/test-lab/android/robo-ux-test" rel="noopener ugc nofollow" target="_blank">Robo test</a>, an intelligent crawler that automatically navigates your app and identifies issues without having to set up tests on your own. For more control over your testing, you can also run custom <a class="af pp" href="https://firebase.google.com/docs/test-lab/android/instrumentation-test" rel="noopener ugc nofollow" target="_blank">instrumentation tests</a> on Firebase Test Lab that allow you to drive the UI of your app.</p><p id="3e63" class="pw-post-body-paragraph mx my gy mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gn bk">For game developers, pre-launch reports and Firebase Test Lab offer <a class="af pp" href="https://firebase.google.com/docs/test-lab/android/game-loop" rel="noopener ugc nofollow" target="_blank">Game Loop tests </a>that simulates the actions of a real player, and provides a fast and scalable way to verify that your game performs well for your users.</p><p id="9e08" class="pw-post-body-paragraph mx my gy mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gn bk">Firebase Test Lab and pre-launch reports<strong class="mz gz"> </strong>provide you with actionable next steps on how to address stability, Android compatibility, display, accessibility and security vulnerabilities across devices without having to maintain this infrastructure on your own.</p><h1 id="cf36" class="om on gy bf oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj bk"><strong class="al">Monitor and quickly fix crashes that occur in your app</strong></h1><p id="6067" class="pw-post-body-paragraph mx my gy mz b na pk nc nd ne pl ng nh ni pm nk nl nm pn no np nq po ns nt nu gn bk">No matter how much testing you do, all apps crash every once in a while. You don’t want to learn about problems in your app from angry reviews or support tickets from frustrated users. The best way to monitor your app’s stability is to find out about issues as soon as they occur.</p><p id="384b" class="pw-post-body-paragraph mx my gy mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gn bk">To ensure you’re prioritizing the most pervasive crashes, start by reviewing your <a class="af pp" href="https://play.google.com/console/about/vitals/" rel="noopener ugc nofollow" target="_blank"><strong class="mz gz">Android vitals</strong></a><strong class="mz gz"> </strong>dashboard to get a broad overview of your crash and ANR rates.</p><p id="4c0f" class="pw-post-body-paragraph mx my gy mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gn bk">Once you’ve gone through your Android vitals metrics, it’s time to begin fixing issues, but troubleshooting can take time. <a class="af pp" href="https://firebase.google.com/products/crashlytics" rel="noopener ugc nofollow" target="_blank"><strong class="mz gz">Firebase Crashlytics</strong></a> can help you fix stability issues faster by providing additional context that helps you quickly understand the root cause of a crash. For example, <a class="af pp" href="https://firebase.google.com/docs/crashlytics/customize-crash-reports?platform=android#add-keys" rel="noopener ugc nofollow" target="_blank">custom keys</a> provide you with a snapshot of the state of your app before it crashes, and <a class="af pp" href="https://firebase.google.com/docs/crashlytics/customize-crash-reports?platform=android#add-logs" rel="noopener ugc nofollow" target="_blank">custom logs</a> record the events a user went through during their session. You can also integrate Crashlytics with Google Analytics to utilize breadcrumbs, which automatically capture <a class="af pp" href="https://support.google.com/analytics/answer/6317485?hl=en" rel="noopener ugc nofollow" target="_blank">predefined Google Analytics events</a> that show the actions a user has taken prior to a crash, as well as the parameters within the event. <a class="af pp" href="https://firebase.google.com/use-cases/gameloft/" rel="noopener ugc nofollow" target="_blank">Gameloft</a>, a critically acclaimed game developer, saw firsthand the benefit of using logs and keys to get details and context surrounding crashes, which helped them lower crash rates and increase player session duration by 16%.</p><p id="6d0d" class="pw-post-body-paragraph mx my gy mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gn bk">For even more in-depth insight, export your crash data to <a class="af pp" href="https://firebase.google.com/docs/crashlytics/bigquery-export" rel="noopener ugc nofollow" target="_blank">BigQuery</a> in real time to determine emerging crashes in new code or see the top issues for the day, so you can prioritize and fix them faster.</p><p id="b849" class="pw-post-body-paragraph mx my gy mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gn bk">For more ways Crashlytics can help you improve your app, you can check out this <a class="af pp" href="https://firebase.googleblog.com/2020/07/top-five-reasons-to-use-crashlytics.html" rel="noopener ugc nofollow" target="_blank"><strong class="mz gz">blog post</strong></a> by my colleague, Oleg.</p><h1 id="c016" class="om on gy bf oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj bk"><strong class="al">Analyze app performance after launch</strong></h1><p id="1685" class="pw-post-body-paragraph mx my gy mz b na pk nc nd ne pl ng nh ni pm nk nl nm pn no np nq po ns nt nu gn bk">Once your app is live, you’ll want to monitor how it’s performing across your user base, and spot any technical issues quickly and easily. You can use Android vitals here to monitor not only crashes, but also your app’s excessive wakeup and stuck partial wakeup data, as well as app start time. You can see how your app is performing compared to your peers by using <a class="af pp" href="https://support.google.com/googleplay/android-developer/answer/9324048?hl=en" rel="noopener ugc nofollow" target="_blank">custom peer groups</a>. For game developers, you can also get additional performance insights in Android vitals by integrating <a class="af pp" href="http://d.android.com/performance-tuner" rel="noopener ugc nofollow" target="_blank"><strong class="mz gz">Android Performance Tuner</strong></a> into your game to measure and optimize your frame rate performance and your graphical fidelity across the Android device ecosystem.</p><p id="0a37" class="pw-post-body-paragraph mx my gy mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gn bk">To drill deeper into your app’s performance, <a class="af pp" href="https://firebase.google.com/products/performance" rel="noopener ugc nofollow" target="_blank"><strong class="mz gz">Firebase Performance Monitoring</strong></a> utilizes <a class="af pp" href="https://firebase.google.com/docs/perf-mon#custom-traces" rel="noopener ugc nofollow" target="_blank">custom traces</a> to capture your app’s performance in specific situations so you can understand the context in which performance issues take place and more easily address them. You can also filter both the trace and network data of your app into dimensions like device type, geography, and app version to get to the bottom of issues.</p><p id="b05f" class="pw-post-body-paragraph mx my gy mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gn bk">Understanding your app’s performance not only gives you more information on your app’s relative quality, but also helps you make the right business decisions while ensuring the quality of your app on the Play store.</p><h1 id="15ef" class="om on gy bf oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj bk"><strong class="al">Final words</strong></h1><p id="2f68" class="pw-post-body-paragraph mx my gy mz b na pk nc nd ne pl ng nh ni pm nk nl nm pn no np nq po ns nt nu gn bk">So there you have it! By using Firebase and Google Play together you have a powerful set of tools that help you get a broad overview as well as in-depth insight into stability issues, making your release process less stressful, your app less buggy and your users happy. To get started with Firebase quality tools, you can create a project <a class="af pp" href="https://console.firebase.google.com/?pli=1" rel="noopener ugc nofollow" target="_blank">here</a>, and learn about linking it to Google Play <a class="af pp" href="https://support.google.com/firebase/answer/6392038" rel="noopener ugc nofollow" target="_blank">here</a>.</p></div></div></div></div></section></div></div></article></div><div class="ab cb"><div class="ci bh fz ga gb gc"><div class="pr ps ab je"><div class="pt ab"><a class="pu ay am ao" rel="noopener follow" href="/tag/best-practices?source=post_page-----bccf59f8d92e---------------------------------------"><div class="pv fj cx pw ge px py bf b bg z bk pz">Best Practices</div></a></div><div class="pt ab"><a class="pu ay am ao" rel="noopener follow" href="/tag/android-app-development?source=post_page-----bccf59f8d92e---------------------------------------"><div class="pv fj cx pw ge px py bf b bg z bk pz">Android App Development</div></a></div><div class="pt ab"><a class="pu ay am ao" rel="noopener follow" href="/tag/firebase?source=post_page-----bccf59f8d92e---------------------------------------"><div class="pv fj cx pw ge px py bf b bg z bk pz">Firebase</div></a></div><div class="pt ab"><a class="pu ay am ao" rel="noopener follow" href="/tag/google-play?source=post_page-----bccf59f8d92e---------------------------------------"><div class="pv fj cx pw ge px py bf b bg z bk pz">Google Play</div></a></div><div class="pt ab"><a class="pu ay am ao" rel="noopener follow" href="/tag/featured?source=post_page-----bccf59f8d92e---------------------------------------"><div class="pv fj cx pw ge px py bf b bg z bk pz">Featured</div></a></div></div></div></div><div class="l"></div><footer class="qa qb qc qd qe ab q qf io c"><div class="l ae"><div class="ab cb"><div class="ci bh fz ga gb gc"><div class="ab cp qg"><div class="ab q kx"><div class="qh l"><span class="l qi qj qk e d"><div class="ab q kx ky"><div class="pw-multi-vote-icon fj jg kz la lb"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" data-testid="footerClapButton" rel="noopener follow" href="/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fvote%2Fgoogleplaydev%2Fbccf59f8d92e&amp;operation=register&amp;redirect=https%3A%2F%2Fmedium.com%2Fgoogleplaydev%2Fhow-to-increase-app-quality-with-firebase-and-google-play-bccf59f8d92e&amp;user=Akua+Prempeh&amp;userId=ce38255695e2&amp;source=---footer_actions--bccf59f8d92e---------------------clap_footer------------------"><div><div class="bm" aria-hidden="false"><div class="lc ao ld le lf lg am lh li lj lb"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" aria-label="clap"><path fill-rule="evenodd" d="M11.37.828 12 3.282l.63-2.454zM13.916 3.953l1.523-2.112-1.184-.39zM8.589 1.84l1.522 2.112-.337-2.501zM18.523 18.92c-.86.86-1.75 1.246-2.62 1.33a6 6 0 0 0 .407-.372c2.388-2.389 2.86-4.951 1.399-7.623l-.912-1.603-.79-1.672c-.26-.56-.194-.98.203-1.288a.7.7 0 0 1 .546-.132c.283.046.546.231.728.5l2.363 4.157c.976 1.624 1.141 4.237-1.324 6.702m-10.999-.438L3.37 14.328a.828.828 0 0 1 .585-1.408.83.83 0 0 1 .585.242l2.158 2.157a.365.365 0 0 0 .516-.516l-2.157-2.158-1.449-1.449a.826.826 0 0 1 1.167-1.17l3.438 3.44a.363.363 0 0 0 .516 0 .364.364 0 0 0 0-.516L5.293 9.513l-.97-.97a.826.826 0 0 1 0-1.166.84.84 0 0 1 1.167 0l.97.968 3.437 3.436a.36.36 0 0 0 .517 0 .366.366 0 0 0 0-.516L6.977 7.83a.82.82 0 0 1-.241-.584.82.82 0 0 1 .824-.826c.219 0 .43.087.584.242l5.787 5.787a.366.366 0 0 0 .587-.415l-1.117-2.363c-.26-.56-.194-.98.204-1.289a.7.7 0 0 1 .546-.132c.283.046.545.232.727.501l2.193 3.86c1.302 2.38.883 4.59-1.277 6.75-1.156 1.156-2.602 1.627-4.19 1.367-1.418-.236-2.866-1.033-4.079-2.246M10.75 5.971l2.12 2.12c-.41.502-.465 1.17-.128 1.89l.22.465-3.523-3.523a.8.8 0 0 1-.097-.368c0-.22.086-.428.241-.584a.847.847 0 0 1 1.167 0m7.355 1.705c-.31-.461-.746-.758-1.23-.837a1.44 1.44 0 0 0-1.11.275c-.312.24-.505.543-.59.881a1.74 1.74 0 0 0-.906-.465 1.47 1.47 0 0 0-.82.106l-2.182-2.182a1.56 1.56 0 0 0-2.2 0 1.54 1.54 0 0 0-.396.701 1.56 1.56 0 0 0-2.21-.01 1.55 1.55 0 0 0-.416.753c-.624-.624-1.649-.624-2.237-.037a1.557 1.557 0 0 0 0 2.2c-.239.1-.501.238-.715.453a1.56 1.56 0 0 0 0 2.2l.516.515a1.556 1.556 0 0 0-.753 2.615L7.01 19c1.32 1.319 2.909 2.189 4.475 2.449q.482.08.971.08c.85 0 1.653-.198 2.393-.579.231.033.46.054.686.054 1.266 0 2.457-.52 3.505-1.567 2.763-2.763 2.552-5.734 1.439-7.586z" clip-rule="evenodd"></path></svg></div></div></div></a></span></div><div class="pw-multi-vote-count l lk ll lm ln lo lp lq"><p class="bf b dv z du"><span class="lr">--</span></p></div></div></span><span class="l h g f ql qm"><div class="ab q kx ky"><div class="pw-multi-vote-icon fj jg kz la lb"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" data-testid="footerClapButton" rel="noopener follow" href="/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fvote%2Fgoogleplaydev%2Fbccf59f8d92e&amp;operation=register&amp;redirect=https%3A%2F%2Fmedium.com%2Fgoogleplaydev%2Fhow-to-increase-app-quality-with-firebase-and-google-play-bccf59f8d92e&amp;user=Akua+Prempeh&amp;userId=ce38255695e2&amp;source=---footer_actions--bccf59f8d92e---------------------clap_footer------------------"><div><div class="bm" aria-hidden="false"><div class="lc ao ld le lf lg am lh li lj lb"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" aria-label="clap"><path fill-rule="evenodd" d="M11.37.828 12 3.282l.63-2.454zM13.916 3.953l1.523-2.112-1.184-.39zM8.589 1.84l1.522 2.112-.337-2.501zM18.523 18.92c-.86.86-1.75 1.246-2.62 1.33a6 6 0 0 0 .407-.372c2.388-2.389 2.86-4.951 1.399-7.623l-.912-1.603-.79-1.672c-.26-.56-.194-.98.203-1.288a.7.7 0 0 1 .546-.132c.283.046.546.231.728.5l2.363 4.157c.976 1.624 1.141 4.237-1.324 6.702m-10.999-.438L3.37 14.328a.828.828 0 0 1 .585-1.408.83.83 0 0 1 .585.242l2.158 2.157a.365.365 0 0 0 .516-.516l-2.157-2.158-1.449-1.449a.826.826 0 0 1 1.167-1.17l3.438 3.44a.363.363 0 0 0 .516 0 .364.364 0 0 0 0-.516L5.293 9.513l-.97-.97a.826.826 0 0 1 0-1.166.84.84 0 0 1 1.167 0l.97.968 3.437 3.436a.36.36 0 0 0 .517 0 .366.366 0 0 0 0-.516L6.977 7.83a.82.82 0 0 1-.241-.584.82.82 0 0 1 .824-.826c.219 0 .43.087.584.242l5.787 5.787a.366.366 0 0 0 .587-.415l-1.117-2.363c-.26-.56-.194-.98.204-1.289a.7.7 0 0 1 .546-.132c.283.046.545.232.727.501l2.193 3.86c1.302 2.38.883 4.59-1.277 6.75-1.156 1.156-2.602 1.627-4.19 1.367-1.418-.236-2.866-1.033-4.079-2.246M10.75 5.971l2.12 2.12c-.41.502-.465 1.17-.128 1.89l.22.465-3.523-3.523a.8.8 0 0 1-.097-.368c0-.22.086-.428.241-.584a.847.847 0 0 1 1.167 0m7.355 1.705c-.31-.461-.746-.758-1.23-.837a1.44 1.44 0 0 0-1.11.275c-.312.24-.505.543-.59.881a1.74 1.74 0 0 0-.906-.465 1.47 1.47 0 0 0-.82.106l-2.182-2.182a1.56 1.56 0 0 0-2.2 0 1.54 1.54 0 0 0-.396.701 1.56 1.56 0 0 0-2.21-.01 1.55 1.55 0 0 0-.416.753c-.624-.624-1.649-.624-2.237-.037a1.557 1.557 0 0 0 0 2.2c-.239.1-.501.238-.715.453a1.56 1.56 0 0 0 0 2.2l.516.515a1.556 1.556 0 0 0-.753 2.615L7.01 19c1.32 1.319 2.909 2.189 4.475 2.449q.482.08.971.08c.85 0 1.653-.198 2.393-.579.231.033.46.054.686.054 1.266 0 2.457-.52 3.505-1.567 2.763-2.763 2.552-5.734 1.439-7.586z" clip-rule="evenodd"></path></svg></div></div></div></a></span></div><div class="pw-multi-vote-count l lk ll lm ln lo lp lq"><p class="bf b dv z du"><span class="lr">--</span></p></div></div></span></div><div class="bq ab"><div><div class="bm" aria-hidden="false"><button class="ao lc lt lu ab q fk lv lw" aria-label="responses"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" class="gt"><path d="M18.006 16.803c1.533-1.456 2.234-3.325 2.234-5.321C20.24 7.357 16.709 4 12.191 4S4 7.357 4 11.482c0 4.126 3.674 7.482 8.191 7.482.817 0 1.622-.111 2.393-.327.231.2.48.391.744.559 1.06.693 2.203 1.044 3.399 1.044.224-.008.4-.112.486-.287a.49.49 0 0 0-.042-.518c-.495-.67-.845-1.364-1.04-2.057a4 4 0 0 1-.125-.598zm-3.122 1.055-.067-.223-.315.096a8 8 0 0 1-2.311.338c-4.023 0-7.292-2.955-7.292-6.587 0-3.633 3.269-6.588 7.292-6.588 4.014 0 7.112 2.958 7.112 6.593 0 1.794-.608 3.469-2.027 4.72l-.195.168v.255c0 .056 0 .151.016.295.025.231.081.478.154.733.154.558.398 1.117.722 1.659a5.3 5.3 0 0 1-2.165-.845c-.276-.176-.714-.383-.941-.59z"></path></svg><p class="bf b bg z du"><span class="pw-responses-count ls gt">1</span></p></button></div></div></div></div><div class="ab q"><div class="qn l jb"><div><div class="bm" aria-hidden="false"><span><a class="af ag ah ai aj ak al am an ao ap aq ar as at" data-testid="footerBookmarkButton" rel="noopener follow" href="/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2Fbccf59f8d92e&amp;operation=register&amp;redirect=https%3A%2F%2Fmedium.com%2Fgoogleplaydev%2Fhow-to-increase-app-quality-with-firebase-and-google-play-bccf59f8d92e&amp;source=---footer_actions--bccf59f8d92e---------------------bookmark_footer------------------"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="du ly" aria-label="Add to list bookmark button"><path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path></svg></a></span></div></div></div><div class="qn l jb"><div class="bm" aria-hidden="false" aria-describedby="postFooterSocialMenu" aria-labelledby="postFooterSocialMenu"><div><div class="bm" aria-hidden="false"><button aria-controls="postFooterSocialMenu" aria-expanded="false" aria-label="Share Post" data-testid="footerSocialShareButton" class="af fk ah ai aj ak al mf an ao ap ex mg mh lw mi"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M15.218 4.931a.4.4 0 0 1-.118.132l.012.006a.45.45 0 0 1-.292.074.5.5 0 0 1-.3-.13l-2.02-2.02v7.07c0 .28-.23.5-.5.5s-.5-.22-.5-.5v-7.04l-2 2a.45.45 0 0 1-.57.04h-.02a.4.4 0 0 1-.16-.3.4.4 0 0 1 .1-.32l2.8-2.8a.5.5 0 0 1 .7 0l2.8 2.79a.42.42 0 0 1 .068.498m-.106.138.008.004v-.01zM16 7.063h1.5a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-11c-1.1 0-2-.9-2-2v-10a2 2 0 0 1 2-2H8a.5.5 0 0 1 .35.15.5.5 0 0 1 .15.35.5.5 0 0 1-.15.35.5.5 0 0 1-.35.15H6.4c-.5 0-.9.4-.9.9v10.2a.9.9 0 0 0 .9.9h11.2c.5 0 .9-.4.9-.9v-10.2c0-.5-.4-.9-.9-.9H16a.5.5 0 0 1 0-1" clip-rule="evenodd"></path></svg></button></div></div></div></div></div></div></div></div></div></footer><div class="qo l"><div><div class="ab cb"><div class="ci bh fz ga gb gc"><div class="qp l"><div class="ab qq qr qs jd jc"><div class="qt qu qv qw qx qy qz ra rb rc ab cp"><div class="h k"><a href="https://medium.com/googleplaydev?source=post_page---post_publication_info--bccf59f8d92e---------------------------------------" rel="noopener follow"><div class="fj ab"><img alt="Google Play Apps &amp; Games" class="rd if ig cx" src="https://miro.medium.com/v2/resize:fill:96:96/1*PwgNVOb5tR6qM0jJxqrIkw.jpeg" width="48" height="48" loading="lazy"/><div class="rd l ig if fs n fr re"></div></div></a></div><div class="j i d"><a href="https://medium.com/googleplaydev?source=post_page---post_publication_info--bccf59f8d92e---------------------------------------" rel="noopener follow"><div class="fj ab"><img alt="Google Play Apps &amp; Games" class="rd rg rf cx" src="https://miro.medium.com/v2/resize:fill:128:128/1*PwgNVOb5tR6qM0jJxqrIkw.jpeg" width="64" height="64" loading="lazy"/><div class="rd l rf rg fs n fr re"></div></div></a></div><div class="j i d rh jb"><div class="ab"></div></div></div><div class="ab co ri"><div class="rj rk rl rm rn l"><a class="af ag ah aj ak al am an ao ap aq ar as at ab q" href="https://medium.com/googleplaydev?source=post_page---post_publication_info--bccf59f8d92e---------------------------------------" rel="noopener follow"><h2 class="pw-author-name bf rp rq rr rs rt ru rv ni rw rx nm ry rz nq sa sb bk"><span class="gn ro">Published in <!-- -->Google Play Apps &amp; Games</span></h2></a><div class="pt ab ie"><div class="l jb"><span class="pw-follower-count bf b bg z du"><a class="af ag ah ai aj ak al am an ao ap aq ar iu" rel="noopener follow" href="/googleplaydev/followers?source=post_page---post_publication_info--bccf59f8d92e---------------------------------------">28K Followers</a></span></div><div class="bf b bg z du ab jf"><span class="iv l" aria-hidden="true"><span class="bf b bg z du">·</span></span><a class="af ag ah ai aj ak al am an ao ap aq ar iu" rel="noopener follow" href="/googleplaydev/importance-of-building-your-game-community-in-southeast-asia-and-india-dc3aaa65902a?source=post_page---post_publication_info--bccf59f8d92e---------------------------------------">Last published <span>Dec 19, 2023</span></a></div></div><div class="sc l"><p class="bf b bg z bk"><span class="gn">Tips, trends, and industry thoughts for app and game developers building businesses on Google Play.</span></p></div></div></div><div class="h k"><div class="ab"></div></div></div></div><div class="ab qq qr qs jd jc"><div class="qt qu qv qw qx qy qz ra rb rc ab cp"><div class="h k"><a tabindex="0" rel="noopener follow" href="/@aprempeh_39888?source=post_page---post_author_info--bccf59f8d92e---------------------------------------"><div class="l fj"><img alt="Akua Prempeh" class="l fd by ig if cx" src="https://miro.medium.com/v2/resize:fill:96:96/0*h2W1JQNSMMIC24xc" width="48" height="48" loading="lazy"/><div class="fr by l ig if fs n ay re"></div></div></a></div><div class="j i d"><a tabindex="0" rel="noopener follow" href="/@aprempeh_39888?source=post_page---post_author_info--bccf59f8d92e---------------------------------------"><div class="l fj"><img alt="Akua Prempeh" class="l fd by rf rg cx" src="https://miro.medium.com/v2/resize:fill:128:128/0*h2W1JQNSMMIC24xc" width="64" height="64" loading="lazy"/><div class="fr by l rf rg fs n ay re"></div></div></a></div><div class="j i d rh jb"><div class="ab"><span><button class="bf b bg z sd pv se sf sg sh si ev ew sj sk sl fa fb fc fd bm fe ff">Follow</button></span></div></div></div><div class="ab co ri"><div class="rj rk rl rm rn l"><a class="af ag ah aj ak al am an ao ap aq ar as at ab q" rel="noopener follow" href="/@aprempeh_39888?source=post_page---post_author_info--bccf59f8d92e---------------------------------------"><h2 class="pw-author-name bf rp rq rr rs rt ru rv ni rw rx nm ry rz nq sa sb bk"><span class="gn ro">Written by <!-- -->Akua Prempeh</span></h2></a><div class="pt ab ie"><div class="l jb"><span class="pw-follower-count bf b bg z du"><a class="af ag ah ai aj ak al am an ao ap aq ar iu" rel="noopener follow" href="/@aprempeh_39888/followers?source=post_page---post_author_info--bccf59f8d92e---------------------------------------">53 Followers</a></span></div><div class="bf b bg z du ab jf"><span class="iv l" aria-hidden="true"><span class="bf b bg z du">·</span></span><a class="af ag ah ai aj ak al am an ao ap aq ar iu" rel="noopener follow" href="/@aprempeh_39888/following?source=post_page---post_author_info--bccf59f8d92e---------------------------------------">1 Following</a></div></div><div class="sc l"></div></div></div><div class="h k"><div class="ab"><span><button class="bf b bg z sd pv se sf sg sh si ev ew sj sk sl fa fb fc fd bm fe ff">Follow</button></span></div></div></div></div></div></div></div><div class="sm sn so sp sq l"><div class="sr bh r qo"></div><div class="ab cb"><div class="ci bh fz ga gb gc"><div class="ab q cp"><h2 class="bf rp op or os ot ov ow ox oz pa pb pd pe pf ph pi bk">Responses (<!-- -->1<!-- -->)</h2><div class="ab ss"><div><div class="bm" aria-hidden="false"><a class="st su" href="https://policy.medium.com/medium-rules-30e5502c4eb4?source=post_page---post_responses--bccf59f8d92e---------------------------------------" rel="noopener follow" target="_blank"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 25 25"><path fill-rule="evenodd" d="M11.987 5.036a.754.754 0 0 1 .914-.01c.972.721 1.767 1.218 2.6 1.543.828.322 1.719.485 2.887.505a.755.755 0 0 1 .741.757c-.018 3.623-.43 6.256-1.449 8.21-1.034 1.984-2.662 3.209-4.966 4.083a.75.75 0 0 1-.537-.003c-2.243-.874-3.858-2.095-4.897-4.074-1.024-1.951-1.457-4.583-1.476-8.216a.755.755 0 0 1 .741-.757c1.195-.02 2.1-.182 2.923-.503.827-.322 1.6-.815 2.519-1.535m.468.903c-.897.69-1.717 1.21-2.623 1.564-.898.35-1.856.527-3.026.565.037 3.45.469 5.817 1.36 7.515.884 1.684 2.25 2.762 4.284 3.571 2.092-.81 3.465-1.89 4.344-3.575.886-1.698 1.299-4.065 1.334-7.512-1.149-.039-2.091-.217-2.99-.567-.906-.353-1.745-.873-2.683-1.561m-.009 9.155a2.672 2.672 0 1 0 0-5.344 2.672 2.672 0 0 0 0 5.344m0 1a3.672 3.672 0 1 0 0-7.344 3.672 3.672 0 0 0 0 7.344m-1.813-3.777.525-.526.916.917 1.623-1.625.526.526-2.149 2.152z" clip-rule="evenodd"></path></svg></a></div></div></div></div><div class="sv sw sx sy sz ta tb l"></div><div class="tc l"><button class="bf b bg z bk pv td te tf ly lv si ev ew ex tg th ti fa tj tk tl tm tn fb fc fd bm fe ff">See all responses</button></div></div></div></div><div class="to tp tq tr ts l bx"><div class="h k j"><div class="sr bh tt tu"></div><div class="ab cb"><div class="ci bh fz ga gb gc"><div class="tv ab kx je"><div class="tw tx l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://help.medium.com/hc/en-us?source=post_page-----bccf59f8d92e---------------------------------------" rel="noopener follow"><p class="bf b dv z du">Help</p></a></div><div class="tw tx l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://medium.statuspage.io/?source=post_page-----bccf59f8d92e---------------------------------------" rel="noopener follow"><p class="bf b dv z du">Status</p></a></div><div class="tw tx l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" rel="noopener follow" href="/about?autoplay=1&amp;source=post_page-----bccf59f8d92e---------------------------------------"><p class="bf b dv z du">About</p></a></div><div class="tw tx l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" rel="noopener follow" href="/jobs-at-medium/work-at-medium-959d1a85284e?source=post_page-----bccf59f8d92e---------------------------------------"><p class="bf b dv z du">Careers</p></a></div><div class="tw tx l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="mailto:pressinquiries@medium.com" rel="noopener follow"><p class="bf b dv z du">Press</p></a></div><div class="tw tx l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://blog.medium.com/?source=post_page-----bccf59f8d92e---------------------------------------" rel="noopener follow"><p class="bf b dv z du">Blog</p></a></div><div class="tw tx l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://policy.medium.com/medium-privacy-policy-f03bf92035c9?source=post_page-----bccf59f8d92e---------------------------------------" rel="noopener follow"><p class="bf b dv z du">Privacy</p></a></div><div class="tw tx l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://policy.medium.com/medium-terms-of-service-9db0094a1e0f?source=post_page-----bccf59f8d92e---------------------------------------" rel="noopener follow"><p class="bf b dv z du">Terms</p></a></div><div class="tw tx l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" href="https://speechify.com/medium?source=post_page-----bccf59f8d92e---------------------------------------" rel="noopener follow"><p class="bf b dv z du">Text to speech</p></a></div><div class="tw l"><a class="af ag ah ai aj ak al am an ao ap aq ar as at" rel="noopener follow" href="/business?source=post_page-----bccf59f8d92e---------------------------------------"><p class="bf b dv z du">Teams</p></a></div></div></div></div></div></div></div></div></div></div><script>window.__BUILD_ID__="main-20250214-225023-b6ac233ec4"</script><script>window.__GRAPHQL_URI__ = "https://medium.com/_/graphql"</script><script>window.__PRELOADED_STATE__ = {"algolia":{"queries":{}},"cache":{"experimentGroupSet":true,"reason":"","group":"enabled","tags":["group-edgeCachePosts","post-bccf59f8d92e","user-ce38255695e2","collection-1f8baa23933d"],"serverVariantState":"44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a","middlewareEnabled":true,"cacheStatus":"DYNAMIC","shouldUseCache":true,"vary":[],"pubFeaturingPostPageLabelEnabled":false},"client":{"hydrated":false,"isUs":false,"isNativeMedium":false,"isSafariMobile":false,"isSafari":false,"isFirefox":false,"routingEntity":{"type":"DEFAULT","explicit":false},"viewerIsBot":false},"debug":{"requestId":"2eb33930-de5e-4d32-ac5c-a63a173b9956","requestTag":"","hybridDevServices":[],"originalSpanCarrier":{"traceparent":"00-3a55a4b7b51ad813d35088881d24bee9-174aeed31fc265c7-01"}},"multiVote":{"clapsPerPost":{}},"navigation":{"branch":{"show":null,"hasRendered":null,"blockedByCTA":false},"hideGoogleOneTap":false,"hasRenderedAlternateUserBanner":null,"currentLocation":"https:\u002F\u002Fmedium.com\u002Fgoogleplaydev\u002Fhow-to-increase-app-quality-with-firebase-and-google-play-bccf59f8d92e","host":"medium.com","hostname":"medium.com","referrer":"","hasSetReferrer":false,"susiModal":{"step":null,"operation":"register"},"postRead":false,"partnerProgram":{"selectedCountryCode":null},"queryString":"","currentHash":""},"config":{"nodeEnv":"production","version":"main-20250214-225023-b6ac233ec4","target":"production","productName":"Medium","publicUrl":"https:\u002F\u002Fcdn-client.medium.com\u002Flite","authDomain":"medium.com","authGoogleClientId":"216296035834-k1k6qe060s2tp2a2jam4ljdcms00sttg.apps.googleusercontent.com","favicon":"production","glyphUrl":"https:\u002F\u002Fglyph.medium.com","branchKey":"key_live_ofxXr2qTrrU9NqURK8ZwEhknBxiI6KBm","algolia":{"appId":"MQ57UUUQZ2","apiKeySearch":"394474ced050e3911ae2249ecc774921","indexPrefix":"medium_","host":"-dsn.algolia.net"},"recaptchaKey":"6Lfc37IUAAAAAKGGtC6rLS13R1Hrw_BqADfS1LRk","recaptcha3Key":"6Lf8R9wUAAAAABMI_85Wb8melS7Zj6ziuf99Yot5","recaptchaEnterpriseKeyId":"6Le-uGgpAAAAAPprRaokM8AKthQ9KNGdoxaGUvVp","datadog":{"applicationId":"6702d87d-a7e0-42fe-bbcb-95b469547ea0","clientToken":"pub853ea8d17ad6821d9f8f11861d23dfed","rumToken":"pubf9cc52896502b9413b68ba36fc0c7162","context":{"deployment":{"target":"production","tag":"main-20250214-225023-b6ac233ec4","commit":"b6ac233ec4e33c48e304b373b7df8c338a410ef2"}},"datacenter":"us"},"googleAnalyticsCode":"G-7JY7T788PK","googlePay":{"apiVersion":"2","apiVersionMinor":"0","merchantId":"BCR2DN6TV7EMTGBM","merchantName":"Medium","instanceMerchantId":"13685562959212738550"},"applePay":{"version":3},"signInWallCustomDomainCollectionIds":["3a8144eabfe3","336d898217ee","61061eb0c96b","138adf9c44c","819cc2aaeee0"],"mediumMastodonDomainName":"me.dm","mediumOwnedAndOperatedCollectionIds":["8a9336e5bb4","b7e45b22fec3","193b68bd4fba","8d6b8a439e32","54c98c43354d","3f6ecf56618","d944778ce714","92d2092dc598","ae2a65f35510","1285ba81cada","544c7006046e","fc8964313712","40187e704f1c","88d9857e584e","7b6769f2748b","bcc38c8f6edf","cef6983b292","cb8577c9149e","444d13b52878","713d7dbc99b0","ef8e90590e66","191186aaafa0","55760f21cdc5","9dc80918cc93","bdc4052bbdba","8ccfed20cbb2"],"tierOneDomains":["medium.com","thebolditalic.com","arcdigital.media","towardsdatascience.com","uxdesign.cc","codeburst.io","psiloveyou.xyz","writingcooperative.com","entrepreneurshandbook.co","prototypr.io","betterhumans.coach.me","theascent.pub"],"topicsToFollow":["d61cf867d93f","8a146bc21b28","1eca0103fff3","4d562ee63426","aef1078a3ef5","e15e46793f8d","6158eb913466","55f1c20aba7a","3d18b94f6858","4861fee224fd","63c6f1f93ee","1d98b3a9a871","decb52b64abf","ae5d4995e225","830cded25262"],"topicToTagMappings":{"accessibility":"accessibility","addiction":"addiction","android-development":"android-development","art":"art","artificial-intelligence":"artificial-intelligence","astrology":"astrology","basic-income":"basic-income","beauty":"beauty","biotech":"biotech","blockchain":"blockchain","books":"books","business":"business","cannabis":"cannabis","cities":"cities","climate-change":"climate-change","comics":"comics","coronavirus":"coronavirus","creativity":"creativity","cryptocurrency":"cryptocurrency","culture":"culture","cybersecurity":"cybersecurity","data-science":"data-science","design":"design","digital-life":"digital-life","disability":"disability","economy":"economy","education":"education","equality":"equality","family":"family","feminism":"feminism","fiction":"fiction","film":"film","fitness":"fitness","food":"food","freelancing":"freelancing","future":"future","gadgets":"gadgets","gaming":"gaming","gun-control":"gun-control","health":"health","history":"history","humor":"humor","immigration":"immigration","ios-development":"ios-development","javascript":"javascript","justice":"justice","language":"language","leadership":"leadership","lgbtqia":"lgbtqia","lifestyle":"lifestyle","machine-learning":"machine-learning","makers":"makers","marketing":"marketing","math":"math","media":"media","mental-health":"mental-health","mindfulness":"mindfulness","money":"money","music":"music","neuroscience":"neuroscience","nonfiction":"nonfiction","outdoors":"outdoors","parenting":"parenting","pets":"pets","philosophy":"philosophy","photography":"photography","podcasts":"podcast","poetry":"poetry","politics":"politics","privacy":"privacy","product-management":"product-management","productivity":"productivity","programming":"programming","psychedelics":"psychedelics","psychology":"psychology","race":"race","relationships":"relationships","religion":"religion","remote-work":"remote-work","san-francisco":"san-francisco","science":"science","self":"self","self-driving-cars":"self-driving-cars","sexuality":"sexuality","social-media":"social-media","society":"society","software-engineering":"software-engineering","space":"space","spirituality":"spirituality","sports":"sports","startups":"startup","style":"style","technology":"technology","transportation":"transportation","travel":"travel","true-crime":"true-crime","tv":"tv","ux":"ux","venture-capital":"venture-capital","visual-design":"visual-design","work":"work","world":"world","writing":"writing"},"defaultImages":{"avatar":{"imageId":"1*dmbNkD5D-u45r44go_cf0g.png","height":150,"width":150},"orgLogo":{"imageId":"7*V1_7XP4snlmqrc_0Njontw.png","height":110,"width":500},"postLogo":{"imageId":"bd978bb536350a710e8efb012513429cabdc4c28700604261aeda246d0f980b7","height":810,"width":1440},"postPreviewImage":{"imageId":"1*hn4v1tCaJy7cWMyb0bpNpQ.png","height":386,"width":579}},"collectionStructuredData":{"8d6b8a439e32":{"name":"Elemental","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F980\u002F1*9ygdqoKprhwuTVKUM0DLPA@2x.png","width":980,"height":159}}},"3f6ecf56618":{"name":"Forge","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F596\u002F1*uULpIlImcO5TDuBZ6lm7Lg@2x.png","width":596,"height":183}}},"ae2a65f35510":{"name":"GEN","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fmiro.medium.com\u002Fmax\u002F264\u002F1*RdVZMdvfV3YiZTw6mX7yWA.png","width":264,"height":140}}},"88d9857e584e":{"name":"LEVEL","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fmiro.medium.com\u002Fmax\u002F540\u002F1*JqYMhNX6KNNb2UlqGqO2WQ.png","width":540,"height":108}}},"7b6769f2748b":{"name":"Marker","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F383\u002F1*haCUs0wF6TgOOvfoY-jEoQ@2x.png","width":383,"height":92}}},"444d13b52878":{"name":"OneZero","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fmiro.medium.com\u002Fmax\u002F540\u002F1*cw32fIqCbRWzwJaoQw6BUg.png","width":540,"height":123}}},"8ccfed20cbb2":{"name":"Zora","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fmiro.medium.com\u002Fmax\u002F540\u002F1*tZUQqRcCCZDXjjiZ4bDvgQ.png","width":540,"height":106}}}},"embeddedPostIds":{"coronavirus":"cd3010f9d81f"},"sharedCdcMessaging":{"COVID_APPLICABLE_TAG_SLUGS":[],"COVID_APPLICABLE_TOPIC_NAMES":[],"COVID_APPLICABLE_TOPIC_NAMES_FOR_TOPIC_PAGE":[],"COVID_MESSAGES":{"tierA":{"text":"For more information on the novel coronavirus and Covid-19, visit cdc.gov.","markups":[{"start":66,"end":73,"href":"https:\u002F\u002Fwww.cdc.gov\u002Fcoronavirus\u002F2019-nCoV"}]},"tierB":{"text":"Anyone can publish on Medium per our Policies, but we don’t fact-check every story. For more info about the coronavirus, see cdc.gov.","markups":[{"start":37,"end":45,"href":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Fcategories\u002F201931128-Policies-Safety"},{"start":125,"end":132,"href":"https:\u002F\u002Fwww.cdc.gov\u002Fcoronavirus\u002F2019-nCoV"}]},"paywall":{"text":"This article has been made free for everyone, thanks to Medium Members. For more information on the novel coronavirus and Covid-19, visit cdc.gov.","markups":[{"start":56,"end":70,"href":"https:\u002F\u002Fmedium.com\u002Fmembership"},{"start":138,"end":145,"href":"https:\u002F\u002Fwww.cdc.gov\u002Fcoronavirus\u002F2019-nCoV"}]},"unbound":{"text":"This article is free for everyone, thanks to Medium Members. For more information on the novel coronavirus and Covid-19, visit cdc.gov.","markups":[{"start":45,"end":59,"href":"https:\u002F\u002Fmedium.com\u002Fmembership"},{"start":127,"end":134,"href":"https:\u002F\u002Fwww.cdc.gov\u002Fcoronavirus\u002F2019-nCoV"}]}},"COVID_BANNER_POST_ID_OVERRIDE_WHITELIST":["3b31a67bff4a"]},"sharedVoteMessaging":{"TAGS":["politics","election-2020","government","us-politics","election","2020-presidential-race","trump","donald-trump","democrats","republicans","congress","republican-party","democratic-party","biden","joe-biden","maga"],"TOPICS":["politics","election"],"MESSAGE":{"text":"Find out more about the U.S. election results here.","markups":[{"start":46,"end":50,"href":"https:\u002F\u002Fcookpolitical.com\u002F2020-national-popular-vote-tracker"}]},"EXCLUDE_POSTS":["397ef29e3ca5"]},"embedPostRules":[],"recircOptions":{"v1":{"limit":3},"v2":{"limit":8}},"braintreeClientKey":"production_zjkj96jm_m56f8fqpf7ngnrd4","braintree":{"enabled":true,"merchantId":"m56f8fqpf7ngnrd4","merchantAccountId":{"usd":"AMediumCorporation_instant","eur":"amediumcorporation_EUR","cad":"amediumcorporation_CAD"},"publicKey":"ds2nn34bg2z7j5gd","braintreeEnvironment":"production","dashboardUrl":"https:\u002F\u002Fwww.braintreegateway.com\u002Fmerchants","gracePeriodDurationInDays":14,"mediumMembershipPlanId":{"monthly":"ce105f8c57a3","monthlyV2":"e8a5e126-792b-4ee6-8fba-d574c1b02fc5","monthlyWithTrial":"d5ee3dbe3db8","monthlyPremium":"fa741a9b47a2","yearly":"a40ad4a43185","yearlyV2":"3815d7d6-b8ca-4224-9b8c-182f9047866e","yearlyStaff":"d74fb811198a","yearlyWithTrial":"b3bc7350e5c7","yearlyPremium":"e21bd2c12166","monthlyOneYearFree":"e6c0637a-2bad-4171-ab4f-3c268633d83c","monthly25PercentOffFirstYear":"235ecc62-0cdb-49ae-9378-726cd21c504b","monthly20PercentOffFirstYear":"ba518864-9c13-4a99-91ca-411bf0cac756","monthly15PercentOffFirstYear":"594c029b-9f89-43d5-88f8-8173af4e070e","monthly10PercentOffFirstYear":"c6c7bc9a-40f2-4b51-8126-e28511d5bdb0","monthlyForStudents":"629ebe51-da7d-41fd-8293-34cd2f2030a8","yearlyOneYearFree":"78ba7be9-0d9f-4ece-aa3e-b54b826f2bf1","yearly25PercentOffFirstYear":"2dbb010d-bb8f-4eeb-ad5c-a08509f42d34","yearly20PercentOffFirstYear":"47565488-435b-47f8-bf93-40d5fbe0ebc8","yearly15PercentOffFirstYear":"8259809b-0881-47d9-acf7-6c001c7f720f","yearly10PercentOffFirstYear":"9dd694fb-96e1-472c-8d9e-3c868d5c1506","yearlyForStudents":"e29345ef-ab1c-4234-95c5-70e50fe6bc23","monthlyCad":"p52orjkaceei","yearlyCad":"h4q9g2up9ktt"},"braintreeDiscountId":{"oneMonthFree":"MONTHS_FREE_01","threeMonthsFree":"MONTHS_FREE_03","sixMonthsFree":"MONTHS_FREE_06","fiftyPercentOffOneYear":"FIFTY_PERCENT_OFF_ONE_YEAR"},"3DSecureVersion":"2","defaultCurrency":"usd","providerPlanIdCurrency":{"4ycw":"usd","rz3b":"usd","3kqm":"usd","jzw6":"usd","c2q2":"usd","nnsw":"usd","q8qw":"usd","d9y6":"usd","fx7w":"cad","nwf2":"cad"}},"paypalClientId":"AXj1G4fotC2GE8KzWX9mSxCH1wmPE3nJglf4Z2ig_amnhvlMVX87otaq58niAg9iuLktVNF_1WCMnN7v","paypal":{"host":"https:\u002F\u002Fapi.paypal.com:443","clientMode":"production","serverMode":"live","webhookId":"4G466076A0294510S","monthlyPlan":{"planId":"P-9WR0658853113943TMU5FDQA","name":"Medium Membership (Monthly) with setup fee","description":"Unlimited access to the best and brightest stories on Medium. Membership billed monthly."},"yearlyPlan":{"planId":"P-7N8963881P8875835MU5JOPQ","name":"Medium Membership (Annual) with setup fee","description":"Unlimited access to the best and brightest stories on Medium. Membership billed annually."},"oneYearGift":{"name":"Medium Membership (1 Year, Digital Gift Code)","description":"Unlimited access to the best and brightest stories on Medium. Gift codes can be redeemed at medium.com\u002Fredeem.","price":"50.00","currency":"USD","sku":"membership-gift-1-yr"},"oldMonthlyPlan":{"planId":"P-96U02458LM656772MJZUVH2Y","name":"Medium Membership (Monthly)","description":"Unlimited access to the best and brightest stories on Medium. Membership billed monthly."},"oldYearlyPlan":{"planId":"P-59P80963JF186412JJZU3SMI","name":"Medium Membership (Annual)","description":"Unlimited access to the best and brightest stories on Medium. Membership billed annually."},"monthlyPlanWithTrial":{"planId":"P-66C21969LR178604GJPVKUKY","name":"Medium Membership (Monthly) with setup fee","description":"Unlimited access to the best and brightest stories on Medium. Membership billed monthly."},"yearlyPlanWithTrial":{"planId":"P-6XW32684EX226940VKCT2MFA","name":"Medium Membership (Annual) with setup fee","description":"Unlimited access to the best and brightest stories on Medium. Membership billed annually."},"oldMonthlyPlanNoSetupFee":{"planId":"P-4N046520HR188054PCJC7LJI","name":"Medium Membership (Monthly)","description":"Unlimited access to the best and brightest stories on Medium. Membership billed monthly."},"oldYearlyPlanNoSetupFee":{"planId":"P-7A4913502Y5181304CJEJMXQ","name":"Medium Membership (Annual)","description":"Unlimited access to the best and brightest stories on Medium. Membership billed annually."},"sdkUrl":"https:\u002F\u002Fwww.paypal.com\u002Fsdk\u002Fjs"},"stripePublishableKey":"pk_live_7FReX44VnNIInZwrIIx6ghjl","log":{"json":true,"level":"info"},"imageUploadMaxSizeMb":25,"staffPicks":{"title":"Staff Picks","catalogId":"c7bc6e1ee00f"}},"session":{"xsrf":""}}</script><script>window.__APOLLO_STATE__ = {"ROOT_QUERY":{"__typename":"Query","viewer":null,"collectionByDomainOrSlug({\"domainOrSlug\":\"googleplaydev\"})":{"__ref":"Collection:1f8baa23933d"},"postResult({\"id\":\"bccf59f8d92e\"})":{"__ref":"Post:bccf59f8d92e"}},"ImageMetadata:":{"__typename":"ImageMetadata","id":""},"Collection:1f8baa23933d":{"__typename":"Collection","id":"1f8baa23933d","favicon":{"__ref":"ImageMetadata:"},"customStyleSheet":null,"colorPalette":{"__typename":"ColorPalette","highlightSpectrum":{"__typename":"ColorSpectrum","backgroundColor":"#FFFFFFFF","colorPoints":[{"__typename":"ColorPoint","color":"#FFE5F4FF","point":0},{"__typename":"ColorPoint","color":"#FFE0F2FF","point":0.1},{"__typename":"ColorPoint","color":"#FFDBF0FF","point":0.2},{"__typename":"ColorPoint","color":"#FFD6EEFF","point":0.3},{"__typename":"ColorPoint","color":"#FFD1EDFF","point":0.4},{"__typename":"ColorPoint","color":"#FFCBEBFF","point":0.5},{"__typename":"ColorPoint","color":"#FFC6E9FF","point":0.6},{"__typename":"ColorPoint","color":"#FFC0E7FF","point":0.7},{"__typename":"ColorPoint","color":"#FFBAE5FF","point":0.8},{"__typename":"ColorPoint","color":"#FFB4E3FF","point":0.9},{"__typename":"ColorPoint","color":"#FFAEE1FF","point":1}]},"defaultBackgroundSpectrum":{"__typename":"ColorSpectrum","backgroundColor":"#FFFFFFFF","colorPoints":[{"__typename":"ColorPoint","color":"#FF427EFF","point":0},{"__typename":"ColorPoint","color":"#FF4076FF","point":0.1},{"__typename":"ColorPoint","color":"#FF3E6EE6","point":0.2},{"__typename":"ColorPoint","color":"#FF3B65CE","point":0.3},{"__typename":"ColorPoint","color":"#FF375CB6","point":0.4},{"__typename":"ColorPoint","color":"#FF33539E","point":0.5},{"__typename":"ColorPoint","color":"#FF2E4987","point":0.6},{"__typename":"ColorPoint","color":"#FF293E71","point":0.7},{"__typename":"ColorPoint","color":"#FF22335B","point":0.8},{"__typename":"ColorPoint","color":"#FF1A2744","point":0.9},{"__typename":"ColorPoint","color":"#FF111A2E","point":1}]},"tintBackgroundSpectrum":{"__typename":"ColorSpectrum","backgroundColor":"#FF2861FF","colorPoints":[{"__typename":"ColorPoint","color":"#FF2861FF","point":0},{"__typename":"ColorPoint","color":"#FF4177FF","point":0.1},{"__typename":"ColorPoint","color":"#FF588AFF","point":0.2},{"__typename":"ColorPoint","color":"#FF6E9BFF","point":0.3},{"__typename":"ColorPoint","color":"#FF83ABFF","point":0.4},{"__typename":"ColorPoint","color":"#FF97BBFF","point":0.5},{"__typename":"ColorPoint","color":"#FFABC9FF","point":0.6},{"__typename":"ColorPoint","color":"#FFBED7FF","point":0.7},{"__typename":"ColorPoint","color":"#FFD0E5FF","point":0.8},{"__typename":"ColorPoint","color":"#FFE3F3FF","point":0.9},{"__typename":"ColorPoint","color":"#FFF5FFFF","point":1}]}},"domain":null,"slug":"googleplaydev","googleAnalyticsId":null,"name":"Google Play Apps & Games","avatar":{"__ref":"ImageMetadata:1*PwgNVOb5tR6qM0jJxqrIkw.jpeg"},"description":"Tips, trends, and industry thoughts for app and game developers building businesses on Google Play.","subscriberCount":28487,"latestPostsConnection({\"paging\":{\"limit\":1}})":{"__typename":"PostConnection","posts":[{"__ref":"Post:dc3aaa65902a"}]},"isAuroraVisible":false,"tintColor":"#FF2861FF","newsletterV3":null,"viewerEdge":{"__ref":"CollectionViewerEdge:collectionId:1f8baa23933d-viewerId:lo_a846c2872d37"},"twitterUsername":"googleplaybiz","facebookPageId":null,"logo":{"__ref":"ImageMetadata:1*g0aLqgJDhirtGQEiD6KPZA.png"}},"ImageMetadata:1*PwgNVOb5tR6qM0jJxqrIkw.jpeg":{"__typename":"ImageMetadata","id":"1*PwgNVOb5tR6qM0jJxqrIkw.jpeg"},"User:a28469f5b06f":{"__typename":"User","id":"a28469f5b06f","customDomainState":null,"hasSubdomain":false,"username":"googleplayteam"},"Post:dc3aaa65902a":{"__typename":"Post","id":"dc3aaa65902a","firstPublishedAt":1703005263457,"creator":{"__ref":"User:a28469f5b06f"},"collection":{"__ref":"Collection:1f8baa23933d"},"isSeries":false,"mediumUrl":"https:\u002F\u002Fmedium.com\u002Fgoogleplaydev\u002Fimportance-of-building-your-game-community-in-southeast-asia-and-india-dc3aaa65902a","sequence":null,"uniqueSlug":"importance-of-building-your-game-community-in-southeast-asia-and-india-dc3aaa65902a"},"LinkedAccounts:ce38255695e2":{"__typename":"LinkedAccounts","mastodon":null,"id":"ce38255695e2"},"User:ce38255695e2":{"__typename":"User","id":"ce38255695e2","linkedAccounts":{"__ref":"LinkedAccounts:ce38255695e2"},"isSuspended":false,"name":"Akua Prempeh","imageId":"0*h2W1JQNSMMIC24xc","customDomainState":null,"hasSubdomain":false,"username":"aprempeh_39888","verifications":{"__typename":"VerifiedInfo","isBookAuthor":false},"socialStats":{"__typename":"SocialStats","followerCount":53,"followingCount":1,"collectionFollowingCount":0},"bio":"","membership":null,"allowNotes":true,"viewerEdge":{"__ref":"UserViewerEdge:userId:ce38255695e2-viewerId:lo_a846c2872d37"},"twitterScreenName":""},"Topic:64756708407c":{"__typename":"Topic","slug":"android-development","id":"64756708407c","name":"Android Dev"},"ImageMetadata:1*Bp_WgSjbTHtQmoQO4SBhqA.png":{"__typename":"ImageMetadata","id":"1*Bp_WgSjbTHtQmoQO4SBhqA.png","originalHeight":1300,"originalWidth":4370,"focusPercentX":null,"focusPercentY":null,"alt":null},"Paragraph:438cb0ca3d31_0":{"__typename":"Paragraph","id":"438cb0ca3d31_0","name":"8682","type":"IMG","href":null,"layout":"FULL_WIDTH","metadata":{"__ref":"ImageMetadata:1*Bp_WgSjbTHtQmoQO4SBhqA.png"},"text":"","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:438cb0ca3d31_1":{"__typename":"Paragraph","id":"438cb0ca3d31_1","name":"b08e","type":"H3","href":null,"layout":null,"metadata":null,"text":"How to increase app quality with Firebase and Google Play","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:438cb0ca3d31_2":{"__typename":"Paragraph","id":"438cb0ca3d31_2","name":"bf58","type":"P","href":null,"layout":null,"metadata":null,"text":"If you’ve ever published an app to Google Play, you may have experienced a moment of panic before release. “Is my app stable enough to handle thousands of users? Will it work as designed across devices?” If you’ve had thoughts like these when shipping your app, don’t worry, you’re not alone. Shipping your app doesn’t have to be a stressful experience and there are tools you can use to ensure your apps are stable and high performing.","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:438cb0ca3d31_3":{"__typename":"Paragraph","id":"438cb0ca3d31_3","name":"3661","type":"P","href":null,"layout":null,"metadata":null,"text":"You may already be using Google Play app quality tools, such as Android vitals and pre-launch reports in your release workflows, but using Firebase and Google Play quality tools together can take your app quality to the next level. Google Play quality tools provide a holistic view of your app’s stability while Firebase quality tools, such as App Distribution, Crashlytics, Test Lab and Performance Monitoring, offer additional customization and more in-depth insights. The combined use of Google Play and Firebase quality tools provides you with actionable insight on your app’s stability and performance before, during, and after launch so you can be confident knowing your users are experiencing the best version of your app.","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:438cb0ca3d31_4":{"__typename":"Paragraph","id":"438cb0ca3d31_4","name":"c589","type":"P","href":null,"layout":null,"metadata":null,"text":"In this article, I’ll cover how to use Firebase app quality tools together with Google Play quality tools to improve user’s experience in your app.","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"ImageMetadata:1*b8z0g4TWrkhZ1FikmBUfpw.png":{"__typename":"ImageMetadata","id":"1*b8z0g4TWrkhZ1FikmBUfpw.png","originalHeight":462,"originalWidth":1226,"focusPercentX":null,"focusPercentY":null,"alt":null},"Paragraph:438cb0ca3d31_5":{"__typename":"Paragraph","id":"438cb0ca3d31_5","name":"73c6","type":"IMG","href":null,"layout":"INSET_CENTER","metadata":{"__ref":"ImageMetadata:1*b8z0g4TWrkhZ1FikmBUfpw.png"},"text":"Table listing out Google Play and Firebase tools that help improve your app quality","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"EM","start":0,"end":83,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:438cb0ca3d31_6":{"__typename":"Paragraph","id":"438cb0ca3d31_6","name":"18e6","type":"H3","href":null,"layout":null,"metadata":null,"text":"Gather feedback from internal teams and external users","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"STRONG","start":0,"end":54,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:438cb0ca3d31_7":{"__typename":"Paragraph","id":"438cb0ca3d31_7","name":"4d27","type":"P","href":null,"layout":null,"metadata":null,"text":"One of the best ways to identify and fix bugs is through feedback from trusted testers, but user testing can be a clunky process. You have to recruit testers, find ways to distribute your test builds and grant testers access. Firebase App Distribution, a pre-release testing tool, provides you with the flexibility to easily distribute your test builds among trusted testers on Android and iOS using the Firebase console or your CI servers so you can collect early feedback and uncover bugs. Also, with no SDK to install, you can get your testers up and running quickly. If you’re looking to test specific Play formats such as App Bundles, you can use Google Play Internal App Sharing to quickly upload and share your test builds with your internal team.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"A","start":226,"end":251,"href":"https:\u002F\u002Ffirebase.google.com\u002Fproducts\u002Fapp-distribution","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"A","start":652,"end":684,"href":"https:\u002F\u002Fplay.google.com\u002Fconsole\u002Fabout\u002Finternalappsharing\u002F","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"STRONG","start":226,"end":251,"href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","type":"STRONG","start":652,"end":685,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:438cb0ca3d31_8":{"__typename":"Paragraph","id":"438cb0ca3d31_8","name":"ba2f","type":"P","href":null,"layout":null,"metadata":null,"text":"When you’re done with internal testing and want to gather more feedback at scale, use Google Play’s open and closed testing tracks to target your most engaged users for a final quality check before releasing a new feature. With open and closed testing you get direct feedback from external users without impacting your ratings or reviews on Google Play. For example, Panzerdog, a game developer, improved retention using closed testing to gather feedback on issues they weren’t originally focused on, such as overall performance and controls. You can find some more best practices on using testing tracks here.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"A","start":100,"end":104,"href":"https:\u002F\u002Fplay.google.com\u002Fconsole\u002Fabout\u002Fopentesting\u002F","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"A","start":109,"end":115,"href":"https:\u002F\u002Fplay.google.com\u002Fconsole\u002Fabout\u002Fclosed-testing\u002F","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"A","start":367,"end":376,"href":"https:\u002F\u002Fdeveloper.android.com\u002Fstories\u002Fgames\u002Fpanzerdog","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"A","start":605,"end":609,"href":"https:\u002F\u002Fdeveloper.android.com\u002Fdistribute\u002Fbest-practices\u002Flaunch\u002Ftest-tracks","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"STRONG","start":100,"end":104,"href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","type":"STRONG","start":109,"end":116,"href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","type":"STRONG","start":367,"end":376,"href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","type":"STRONG","start":605,"end":609,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:438cb0ca3d31_9":{"__typename":"Paragraph","id":"438cb0ca3d31_9","name":"691d","type":"H3","href":null,"layout":null,"metadata":null,"text":"Test your app on different devices","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"STRONG","start":0,"end":34,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:438cb0ca3d31_10":{"__typename":"Paragraph","id":"438cb0ca3d31_10","name":"aa7e","type":"P","href":null,"layout":null,"metadata":null,"text":"With so many Android devices on the market, it’s important to test your app on a variety of devices to ensure it functions as intended for all users. You may already use pre-launch reports on the Google Play Console to run tests on pre-selected devices. However, you might want a little more flexibility, given you know your users best and what devices are most popular with them. Firebase Test Lab allows you to run custom ad-hoc tests at any point in development on a myriad of self-selected physical and virtual devices.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"A","start":170,"end":188,"href":"https:\u002F\u002Fplay.google.com\u002Fconsole\u002Fabout\u002Fpre-launchreports\u002F","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"A","start":381,"end":398,"href":"https:\u002F\u002Ffirebase.google.com\u002Fproducts\u002Ftest-lab","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"STRONG","start":170,"end":188,"href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","type":"STRONG","start":381,"end":398,"href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","type":"EM","start":232,"end":244,"href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","type":"EM","start":480,"end":493,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:438cb0ca3d31_11":{"__typename":"Paragraph","id":"438cb0ca3d31_11","name":"1b62","type":"P","href":null,"layout":null,"metadata":null,"text":"Both pre-launch reports and Firebase Test Lab offer Robo test, an intelligent crawler that automatically navigates your app and identifies issues without having to set up tests on your own. For more control over your testing, you can also run custom instrumentation tests on Firebase Test Lab that allow you to drive the UI of your app.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"A","start":52,"end":61,"href":"https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Ftest-lab\u002Fandroid\u002Frobo-ux-test","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"A","start":250,"end":271,"href":"https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Ftest-lab\u002Fandroid\u002Finstrumentation-test","anchorType":"LINK","userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:438cb0ca3d31_12":{"__typename":"Paragraph","id":"438cb0ca3d31_12","name":"3e63","type":"P","href":null,"layout":null,"metadata":null,"text":"For game developers, pre-launch reports and Firebase Test Lab offer Game Loop tests that simulates the actions of a real player, and provides a fast and scalable way to verify that your game performs well for your users.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"A","start":68,"end":84,"href":"https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Ftest-lab\u002Fandroid\u002Fgame-loop","anchorType":"LINK","userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:438cb0ca3d31_13":{"__typename":"Paragraph","id":"438cb0ca3d31_13","name":"9e08","type":"P","href":null,"layout":null,"metadata":null,"text":"Firebase Test Lab and pre-launch reports provide you with actionable next steps on how to address stability, Android compatibility, display, accessibility and security vulnerabilities across devices without having to maintain this infrastructure on your own.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"STRONG","start":40,"end":41,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:438cb0ca3d31_14":{"__typename":"Paragraph","id":"438cb0ca3d31_14","name":"cf36","type":"H3","href":null,"layout":null,"metadata":null,"text":"Monitor and quickly fix crashes that occur in your app","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"STRONG","start":0,"end":54,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:438cb0ca3d31_15":{"__typename":"Paragraph","id":"438cb0ca3d31_15","name":"6067","type":"P","href":null,"layout":null,"metadata":null,"text":"No matter how much testing you do, all apps crash every once in a while. You don’t want to learn about problems in your app from angry reviews or support tickets from frustrated users. The best way to monitor your app’s stability is to find out about issues as soon as they occur.","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:438cb0ca3d31_16":{"__typename":"Paragraph","id":"438cb0ca3d31_16","name":"384b","type":"P","href":null,"layout":null,"metadata":null,"text":"To ensure you’re prioritizing the most pervasive crashes, start by reviewing your Android vitals dashboard to get a broad overview of your crash and ANR rates.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"A","start":82,"end":96,"href":"https:\u002F\u002Fplay.google.com\u002Fconsole\u002Fabout\u002Fvitals\u002F","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"STRONG","start":82,"end":97,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:438cb0ca3d31_17":{"__typename":"Paragraph","id":"438cb0ca3d31_17","name":"4c0f","type":"P","href":null,"layout":null,"metadata":null,"text":"Once you’ve gone through your Android vitals metrics, it’s time to begin fixing issues, but troubleshooting can take time. Firebase Crashlytics can help you fix stability issues faster by providing additional context that helps you quickly understand the root cause of a crash. For example, custom keys provide you with a snapshot of the state of your app before it crashes, and custom logs record the events a user went through during their session. You can also integrate Crashlytics with Google Analytics to utilize breadcrumbs, which automatically capture predefined Google Analytics events that show the actions a user has taken prior to a crash, as well as the parameters within the event. Gameloft, a critically acclaimed game developer, saw firsthand the benefit of using logs and keys to get details and context surrounding crashes, which helped them lower crash rates and increase player session duration by 16%.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"A","start":123,"end":143,"href":"https:\u002F\u002Ffirebase.google.com\u002Fproducts\u002Fcrashlytics","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"A","start":291,"end":302,"href":"https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Fcrashlytics\u002Fcustomize-crash-reports?platform=android#add-keys","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"A","start":379,"end":390,"href":"https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Fcrashlytics\u002Fcustomize-crash-reports?platform=android#add-logs","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"A","start":560,"end":594,"href":"https:\u002F\u002Fsupport.google.com\u002Fanalytics\u002Fanswer\u002F6317485?hl=en","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"A","start":696,"end":704,"href":"https:\u002F\u002Ffirebase.google.com\u002Fuse-cases\u002Fgameloft\u002F","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"STRONG","start":123,"end":143,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:438cb0ca3d31_18":{"__typename":"Paragraph","id":"438cb0ca3d31_18","name":"6d0d","type":"P","href":null,"layout":null,"metadata":null,"text":"For even more in-depth insight, export your crash data to BigQuery in real time to determine emerging crashes in new code or see the top issues for the day, so you can prioritize and fix them faster.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"A","start":58,"end":66,"href":"https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Fcrashlytics\u002Fbigquery-export","anchorType":"LINK","userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:438cb0ca3d31_19":{"__typename":"Paragraph","id":"438cb0ca3d31_19","name":"b849","type":"P","href":null,"layout":null,"metadata":null,"text":"For more ways Crashlytics can help you improve your app, you can check out this blog post by my colleague, Oleg.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"A","start":80,"end":89,"href":"https:\u002F\u002Ffirebase.googleblog.com\u002F2020\u002F07\u002Ftop-five-reasons-to-use-crashlytics.html","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"STRONG","start":80,"end":89,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:438cb0ca3d31_20":{"__typename":"Paragraph","id":"438cb0ca3d31_20","name":"c016","type":"H3","href":null,"layout":null,"metadata":null,"text":"Analyze app performance after launch","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"STRONG","start":0,"end":36,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:438cb0ca3d31_21":{"__typename":"Paragraph","id":"438cb0ca3d31_21","name":"1685","type":"P","href":null,"layout":null,"metadata":null,"text":"Once your app is live, you’ll want to monitor how it’s performing across your user base, and spot any technical issues quickly and easily. You can use Android vitals here to monitor not only crashes, but also your app’s excessive wakeup and stuck partial wakeup data, as well as app start time. You can see how your app is performing compared to your peers by using custom peer groups. For game developers, you can also get additional performance insights in Android vitals by integrating Android Performance Tuner into your game to measure and optimize your frame rate performance and your graphical fidelity across the Android device ecosystem.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"A","start":366,"end":384,"href":"https:\u002F\u002Fsupport.google.com\u002Fgoogleplay\u002Fandroid-developer\u002Fanswer\u002F9324048?hl=en","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"A","start":489,"end":514,"href":"http:\u002F\u002Fd.android.com\u002Fperformance-tuner","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"STRONG","start":489,"end":514,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:438cb0ca3d31_22":{"__typename":"Paragraph","id":"438cb0ca3d31_22","name":"0a37","type":"P","href":null,"layout":null,"metadata":null,"text":"To drill deeper into your app’s performance, Firebase Performance Monitoring utilizes custom traces to capture your app’s performance in specific situations so you can understand the context in which performance issues take place and more easily address them. You can also filter both the trace and network data of your app into dimensions like device type, geography, and app version to get to the bottom of issues.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"A","start":45,"end":76,"href":"https:\u002F\u002Ffirebase.google.com\u002Fproducts\u002Fperformance","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"A","start":86,"end":99,"href":"https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Fperf-mon#custom-traces","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"STRONG","start":45,"end":76,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:438cb0ca3d31_23":{"__typename":"Paragraph","id":"438cb0ca3d31_23","name":"b05f","type":"P","href":null,"layout":null,"metadata":null,"text":"Understanding your app’s performance not only gives you more information on your app’s relative quality, but also helps you make the right business decisions while ensuring the quality of your app on the Play store.","hasDropCap":null,"dropCapImage":null,"markups":[],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:438cb0ca3d31_24":{"__typename":"Paragraph","id":"438cb0ca3d31_24","name":"15ef","type":"H3","href":null,"layout":null,"metadata":null,"text":"Final words","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"STRONG","start":0,"end":11,"href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"Paragraph:438cb0ca3d31_25":{"__typename":"Paragraph","id":"438cb0ca3d31_25","name":"2f68","type":"P","href":null,"layout":null,"metadata":null,"text":"So there you have it! By using Firebase and Google Play together you have a powerful set of tools that help you get a broad overview as well as in-depth insight into stability issues, making your release process less stressful, your app less buggy and your users happy. To get started with Firebase quality tools, you can create a project here, and learn about linking it to Google Play here.","hasDropCap":null,"dropCapImage":null,"markups":[{"__typename":"Markup","type":"A","start":339,"end":343,"href":"https:\u002F\u002Fconsole.firebase.google.com\u002F?pli=1","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","type":"A","start":387,"end":391,"href":"https:\u002F\u002Fsupport.google.com\u002Ffirebase\u002Fanswer\u002F6392038","anchorType":"LINK","userId":null,"linkMetadata":null}],"codeBlockMetadata":null,"iframe":null,"mixtapeMetadata":null},"CollectionViewerEdge:collectionId:1f8baa23933d-viewerId:lo_a846c2872d37":{"__typename":"CollectionViewerEdge","id":"collectionId:1f8baa23933d-viewerId:lo_a846c2872d37","isEditor":false,"isMuting":false},"UserViewerEdge:userId:ce38255695e2-viewerId:lo_a846c2872d37":{"__typename":"UserViewerEdge","id":"userId:ce38255695e2-viewerId:lo_a846c2872d37","isMuting":false},"ImageMetadata:1*g0aLqgJDhirtGQEiD6KPZA.png":{"__typename":"ImageMetadata","id":"1*g0aLqgJDhirtGQEiD6KPZA.png","originalWidth":266,"originalHeight":56},"PostViewerEdge:postId:bccf59f8d92e-viewerId:lo_a846c2872d37":{"__typename":"PostViewerEdge","shouldIndexPostForExternalSearch":true,"id":"postId:bccf59f8d92e-viewerId:lo_a846c2872d37"},"Tag:best-practices":{"__typename":"Tag","id":"best-practices","displayTitle":"Best Practices","normalizedTagSlug":"best-practices"},"Tag:android-app-development":{"__typename":"Tag","id":"android-app-development","displayTitle":"Android App Development","normalizedTagSlug":"android-app-development"},"Tag:firebase":{"__typename":"Tag","id":"firebase","displayTitle":"Firebase","normalizedTagSlug":"firebase"},"Tag:google-play":{"__typename":"Tag","id":"google-play","displayTitle":"Google Play","normalizedTagSlug":"google-play"},"Tag:featured":{"__typename":"Tag","id":"featured","displayTitle":"Featured","normalizedTagSlug":"featured"},"Post:bccf59f8d92e":{"__typename":"Post","id":"bccf59f8d92e","collection":{"__ref":"Collection:1f8baa23933d"},"content({\"postMeteringOptions\":{\"referrer\":\"\"}})":{"__typename":"PostContent","isLockedPreviewOnly":false,"bodyModel":{"__typename":"RichText","sections":[{"__typename":"Section","name":"8947","startIndex":0,"textLayout":null,"imageLayout":null,"backgroundImage":null,"videoLayout":null,"backgroundVideo":null}],"paragraphs":[{"__ref":"Paragraph:438cb0ca3d31_0"},{"__ref":"Paragraph:438cb0ca3d31_1"},{"__ref":"Paragraph:438cb0ca3d31_2"},{"__ref":"Paragraph:438cb0ca3d31_3"},{"__ref":"Paragraph:438cb0ca3d31_4"},{"__ref":"Paragraph:438cb0ca3d31_5"},{"__ref":"Paragraph:438cb0ca3d31_6"},{"__ref":"Paragraph:438cb0ca3d31_7"},{"__ref":"Paragraph:438cb0ca3d31_8"},{"__ref":"Paragraph:438cb0ca3d31_9"},{"__ref":"Paragraph:438cb0ca3d31_10"},{"__ref":"Paragraph:438cb0ca3d31_11"},{"__ref":"Paragraph:438cb0ca3d31_12"},{"__ref":"Paragraph:438cb0ca3d31_13"},{"__ref":"Paragraph:438cb0ca3d31_14"},{"__ref":"Paragraph:438cb0ca3d31_15"},{"__ref":"Paragraph:438cb0ca3d31_16"},{"__ref":"Paragraph:438cb0ca3d31_17"},{"__ref":"Paragraph:438cb0ca3d31_18"},{"__ref":"Paragraph:438cb0ca3d31_19"},{"__ref":"Paragraph:438cb0ca3d31_20"},{"__ref":"Paragraph:438cb0ca3d31_21"},{"__ref":"Paragraph:438cb0ca3d31_22"},{"__ref":"Paragraph:438cb0ca3d31_23"},{"__ref":"Paragraph:438cb0ca3d31_24"},{"__ref":"Paragraph:438cb0ca3d31_25"}]},"validatedShareKey":"","shareKeyCreator":null},"creator":{"__ref":"User:ce38255695e2"},"inResponseToEntityType":null,"isLocked":false,"isMarkedPaywallOnly":false,"lockedSource":"LOCKED_POST_SOURCE_NONE","mediumUrl":"https:\u002F\u002Fmedium.com\u002Fgoogleplaydev\u002Fhow-to-increase-app-quality-with-firebase-and-google-play-bccf59f8d92e","primaryTopic":{"__ref":"Topic:64756708407c"},"topics":[{"__typename":"Topic","slug":"android-development"},{"__typename":"Topic","slug":"programming"}],"isLimitedState":false,"isPublished":true,"allowResponses":true,"latestPublishedVersion":"438cb0ca3d31","visibility":"PUBLIC","postResponses":{"__typename":"PostResponses","count":1},"responseDistribution":"NOT_DISTRIBUTED","clapCount":106,"title":"How to increase app quality with Firebase and Google Play","isSeries":false,"sequence":null,"uniqueSlug":"how-to-increase-app-quality-with-firebase-and-google-play-bccf59f8d92e","socialTitle":"","socialDek":"","canonicalUrl":"","metaDescription":"","latestPublishedAt":1596558541109,"readingTime":5.213522012578617,"previewContent":{"__typename":"PreviewContent","subtitle":"Learn how the combined use of Firebase & Google Play quality tools provide you with broad and in-depth insight into your app’s stability."},"previewImage":{"__ref":"ImageMetadata:1*Bp_WgSjbTHtQmoQO4SBhqA.png"},"isShortform":false,"seoTitle":"","firstPublishedAt":1596127286338,"updatedAt":1691325755898,"shortformType":"SHORTFORM_TYPE_LINK","seoDescription":"","viewerEdge":{"__ref":"PostViewerEdge:postId:bccf59f8d92e-viewerId:lo_a846c2872d37"},"isSuspended":false,"license":"ALL_RIGHTS_RESERVED","tags":[{"__ref":"Tag:best-practices"},{"__ref":"Tag:android-app-development"},{"__ref":"Tag:firebase"},{"__ref":"Tag:google-play"},{"__ref":"Tag:featured"}],"isFeaturedInPublishedPublication":false,"isNewsletter":false,"statusForCollection":"APPROVED","pendingCollection":null,"detectedLanguage":"en","wordCount":1280,"layerCake":3,"responsesLocked":false}}</script><script>window.__MIDDLEWARE_STATE__={"session":{"xsrf":""},"cache":{"cacheStatus":"MISS"}}</script><script src="https://cdn-client.medium.com/lite/static/js/manifest.8b67b313.js"></script><script src="https://cdn-client.medium.com/lite/static/js/9865.1496d74a.js"></script><script src="https://cdn-client.medium.com/lite/static/js/main.94ea62ed.js"></script><script src="https://cdn-client.medium.com/lite/static/js/instrumentation.5bef8967.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/reporting.ff22a7a5.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/9120.5df29668.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/5049.d1ead72d.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/4505.6dfaf853.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/6618.db187378.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/9380.fb176dee.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/2707.dc8dbee4.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/9977.933c1c9a.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/8599.68bc318b.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/3045.1cc3d8cb.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/6349.3329b100.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/2648.26563adf.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/8393.a4ecfb83.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/6428.36238b5a.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/6199.6da73f3b.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/5642.7d9f7f3d.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/6546.67eb283b.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/6834.8aa8d357.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/4492.0c3e1a1d.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/2571.6814b962.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/839.1c286b32.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/6128.f8800a13.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/2135.2e8dc177.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/7975.60bcefe8.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/144.86429b48.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/5240.6281357f.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/8819.c627c2bf.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/8204.d0637ed0.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/PostPage.MainContent.c3ee9367.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/8414.0d800846.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/3974.8d3e0217.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/2527.18a8996d.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/PostResponsesContent.e1e580cb.chunk.js"></script> <script src="https://cdn-client.medium.com/lite/static/js/responses.editor.e89462cb.chunk.js"></script><script>window.main();</script><script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'913399e0a945fd28',t:'MTczOTc3MjQ4OC4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10