查看完整版本: FireBase 配 android 問題
頁: [1]

RainieYang 發表於 2018-7-27 08:24 AM

FireBase 配 android 問題

大家好,小弟使用Firebase 遇到一個神奇的現象,代碼片段如下:
其實就是點了一個Button,觸發事件,修改FireBase上的資料,然後觸發下面寫好的 onChildAdded 和 onChildChanged 事件,並且呼叫setBlanckValue來改變本地端顯示畫面。

這本身沒什麼問題,但我發現到的神奇現象是:

當我網路關掉(開飛航,或關閉數據等等),這時我點按鈕,本地端畫面顯示依然改變了,畫面改變我只寫在上面Child事件監聽裡面,這代表我點按鈕的時候,他們監聽到了,但我網路關掉Server應該不可能被我改變資料,實際上我重新連上網後,的確資料又變回來了,這代表網路上的資料的確沒被我改變,那既然如此,為何網路關掉情況下,我點按鈕,會觸發 onChildChanged 呢?  難不成它偷跑?  他根本沒有去網上確認資料是否改變,只要我點了按鈕它就馬上先跟我說child被改了?



...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

jackyo04 發表於 2018-7-27 11:04 AM

要不要先將APP資料清除,然後網路關掉後,開啟APP,再試一次會不會出現結果?
或者說先將要顯示的區域內容清除,再試看看

RainieYang 發表於 2018-7-27 01:50 PM

jackyo04 發表於 2018-7-27 11:04 AM static/image/common/back.gif
要不要先將APP資料清除,然後網路關掉後,開啟APP,再試一次會不會出現結果?
或者說先將要顯示的區域內容 ...

還是一樣,我好奇的點是,我的監聽函數應該是監聽資料庫的資料有變化才會呼叫,但他卻在我網路關掉的情況下,做出試圖改變資料庫的行為時(但網路不通所以不可能改),也呼叫了。...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

jackyo04 發表於 2018-11-19 04:04 PM

今天特別研究了一下Firebase,onChildChanged為什麼會觸發,然後發現,你這個問題,後來在上面加入一個判斷網路是否開啟,網路是否順暢的判斷式後..就正常了..{:32:}

頁: [1]