伊莉討論區

標題: FireBase 配 android 問題 [打印本頁]

作者: RainieYang    時間: 2018-7-27 08:24 AM     標題: FireBase 配 android 問題

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

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

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




作者: jackyo04    時間: 2018-7-27 11:04 AM

要不要先將APP資料清除,然後網路關掉後,開啟APP,再試一次會不會出現結果?
或者說先將要顯示的區域內容清除,再試看看
作者: RainieYang    時間: 2018-7-27 01:50 PM

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

還是一樣,我好奇的點是,我的監聽函數應該是監聽資料庫的資料有變化才會呼叫,但他卻在我網路關掉的情況下,做出試圖改變資料庫的行為時(但網路不通所以不可能改),也呼叫了。
作者: jackyo04    時間: 2018-11-19 04:04 PM

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






歡迎光臨 伊莉討論區 (http://m4.eyny.com/) Powered by Discuz!