{"id":17554,"date":"2022-10-25T15:15:47","date_gmt":"2022-10-25T09:45:47","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-code-does-not-wait-for-firebasedatabase-to-be-read\/"},"modified":"2022-10-25T15:15:47","modified_gmt":"2022-10-25T09:45:47","slug":"solved-code-does-not-wait-for-firebasedatabase-to-be-read","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-code-does-not-wait-for-firebasedatabase-to-be-read\/","title":{"rendered":"[Solved] Code does not wait for FirebaseDatabase to be read"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-51403666\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"51403666\" data-parentid=\"51400884\" data-score=\"2\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"js-endorsements\" data-for-answer=\"51403666\">\n<\/div>\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>As Selvin commented: data is loaded from Firebase asynchronously. You can&#8217;t reliably wait for the data to become available. See Setting Singleton property value in Firebase Listener.<\/p>\n<p>The solution is to move the code that needs the data from Firebase <strong>into<\/strong> the <code>onDataChange<\/code> in <code>checkDataNew<\/code>:<\/p>\n<pre><code>fun checkDataNew() {\n    var rootRef=FirebaseDatabase.getInstance().getReference(\"BG Data\")\n    \/\/ Read from the database\n    rootRef.addValueEventListener(object : ValueEventListener {\n        override fun onDataChange(dataSnapshot: DataSnapshot) {\n            var isKeyFound = false; \/\/ local variables\n            var foundKey;\n            \/\/ This method is called once with the initial value and again\n            \/\/ whenever data at this location is updated.\n            for(data:DataSnapshot in dataSnapshot.children)\n            {\n                var oldEvent=data.child(\"recentEvent\").getValue().toString()\n                var oldDate:String=data.child(\"calendarTime\").getValue().toString()\n                var oldEmailID:String=data.child(\"emailID\").getValue().toString()\n\n                if(oldEvent.equals(recentEvent) &amp;&amp; oldDate.equals(calendarTime) &amp;&amp; oldEmailID.equals(emailID)) {\n                    foundKey = data.key.toString()\n                    isKeyFound = true\n                }\n            }\n\n            \/\/ TODO: process the result here\n            if (isKeyFound) {\n              ...\n            } else {\n              ...\n            }\n        }\n\n        override fun onCancelled(error: DatabaseError) {\n            \/\/ Failed to read value\n        }\n    })\n}\n<\/code><\/pre>\n<p>Alternatively you can define your own callback interface, pass that into <code>checkDataNew<\/code> and invoke it from within there. For an example of this, see getContactsFromFirebase() method return an empty list.<\/p>\n<p>This is a quite common question. So in addition to the links I already provided, I recommend you check out some of these:<\/p>\n<ul>\n<li>can&#8217;t get values out of ondatachange method<\/li>\n<li>ArrayList not updating inside onChildAdded function<\/li>\n<li>Android Firebase addListenerForSingleValueEvent is not working<\/li>\n<li>How to return dataSnapshot value as a result of a method?<\/li>\n<li>Only load layout when firebase calls are complete<\/li>\n<li>Android: wait for firebase valueEventListener<\/li>\n<\/ul>\n<\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">0<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Code does not wait for FirebaseDatabase to be read <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] As Selvin commented: data is loaded from Firebase asynchronously. You can&#8217;t reliably wait for the data to become available. See Setting Singleton property value in Firebase Listener. The solution is to move the code that needs the data from Firebase into the onDataChange in checkDataNew: fun checkDataNew() { var rootRef=FirebaseDatabase.getInstance().getReference(&#8220;BG Data&#8221;) \/\/ Read from &#8230; <a title=\"[Solved] Code does not wait for FirebaseDatabase to be read\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-code-does-not-wait-for-firebasedatabase-to-be-read\/\" aria-label=\"More on [Solved] Code does not wait for FirebaseDatabase to be read\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[452,980,323,600],"class_list":["post-17554","post","type-post","status-publish","format-standard","hentry","category-solved","tag-android","tag-firebase","tag-java","tag-kotlin"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] Code does not wait for FirebaseDatabase to be read - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-code-does-not-wait-for-firebasedatabase-to-be-read\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Code does not wait for FirebaseDatabase to be read - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] As Selvin commented: data is loaded from Firebase asynchronously. You can&#8217;t reliably wait for the data to become available. See Setting Singleton property value in Firebase Listener. The solution is to move the code that needs the data from Firebase into the onDataChange in checkDataNew: fun checkDataNew() { var rootRef=FirebaseDatabase.getInstance().getReference(&quot;BG Data&quot;) \/\/ Read from ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-code-does-not-wait-for-firebasedatabase-to-be-read\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-25T09:45:47+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-code-does-not-wait-for-firebasedatabase-to-be-read\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-code-does-not-wait-for-firebasedatabase-to-be-read\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Code does not wait for FirebaseDatabase to be read\",\"datePublished\":\"2022-10-25T09:45:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-code-does-not-wait-for-firebasedatabase-to-be-read\/\"},\"wordCount\":162,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"android\",\"firebase\",\"java\",\"kotlin\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-code-does-not-wait-for-firebasedatabase-to-be-read\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-code-does-not-wait-for-firebasedatabase-to-be-read\/\",\"name\":\"[Solved] Code does not wait for FirebaseDatabase to be read - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-10-25T09:45:47+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-code-does-not-wait-for-firebasedatabase-to-be-read\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-code-does-not-wait-for-firebasedatabase-to-be-read\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-code-does-not-wait-for-firebasedatabase-to-be-read\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Code does not wait for FirebaseDatabase to be read\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Code does not wait for FirebaseDatabase to be read - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-code-does-not-wait-for-firebasedatabase-to-be-read\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Code does not wait for FirebaseDatabase to be read - JassWeb","og_description":"[ad_1] As Selvin commented: data is loaded from Firebase asynchronously. You can&#8217;t reliably wait for the data to become available. See Setting Singleton property value in Firebase Listener. The solution is to move the code that needs the data from Firebase into the onDataChange in checkDataNew: fun checkDataNew() { var rootRef=FirebaseDatabase.getInstance().getReference(\"BG Data\") \/\/ Read from ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-code-does-not-wait-for-firebasedatabase-to-be-read\/","og_site_name":"JassWeb","article_published_time":"2022-10-25T09:45:47+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-code-does-not-wait-for-firebasedatabase-to-be-read\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-code-does-not-wait-for-firebasedatabase-to-be-read\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Code does not wait for FirebaseDatabase to be read","datePublished":"2022-10-25T09:45:47+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-code-does-not-wait-for-firebasedatabase-to-be-read\/"},"wordCount":162,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["android","firebase","java","kotlin"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-code-does-not-wait-for-firebasedatabase-to-be-read\/","url":"https:\/\/jassweb.com\/solved\/solved-code-does-not-wait-for-firebasedatabase-to-be-read\/","name":"[Solved] Code does not wait for FirebaseDatabase to be read - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-10-25T09:45:47+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-code-does-not-wait-for-firebasedatabase-to-be-read\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-code-does-not-wait-for-firebasedatabase-to-be-read\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-code-does-not-wait-for-firebasedatabase-to-be-read\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Code does not wait for FirebaseDatabase to be read"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/17554","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=17554"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/17554\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=17554"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=17554"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=17554"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}