2016-08-20 20 views
2

當我從Android Studio安裝時,我的應用工作正常,但在使用調試APK版本時,由於某些原因,Firebase不會從實時數據庫中下載所有值。我不知道爲什麼它只發生在APK版本上。Firebase實時數據庫不會返回Android調試版的所有值APK版本

要得到什麼不工作的想法,我有聽衆如下:

ValueEventListener questionListener = new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     GenericTypeIndicator<List<Question>> t = new GenericTypeIndicator<List<Question>>() {}; 
      mQuestions = (ArrayList<Question>) dataSnapshot.getValue(t); 

    ... 

mDatabase.child("surveys").child("surveyName").child("questions").addValueEventListener(questionListener); 

的問題是一個問題裏邊有問題的選項,並且每個選項都有幾個參數。當我通過Android Studio安裝應用程序時,它會收到所有參數並且工作正常。但是,當我構建調試APK並安裝它時,其中一個參數缺失(在所有問題上)。更奇怪的是,它似乎只發生在一個領域。該字段曾經是一個布爾值,但我將其更改爲一個字符串,看看它是否會有所作爲。可悲的是,它仍然有同樣的問題。

有沒有人有任何線索,爲什麼這可能會發生或我甚至可以看?

數據庫中的每個問題選項都具有此字段集。爲什麼在使用APK版本時不會下載它?這是一個錯誤嗎?

謝謝。

+0

目前尚不清楚您的「調試APK」和版本「從Android Studio安裝」有何不同。當你從AS安裝並運行時,它是否與你的「調試APK」有所不同? –

+0

我正在運行AS的調試構建變體。沒有發佈版本。我正在使用調試密鑰進行身份驗證。 –

+0

@ michael確切地說,我陷入了你的境地,這真的很奇怪,其他人直到他們面對它纔會明白。 – Mani

回答

1

好吧,它看起來像我解決了我自己的問題。我沒有在文檔頁面https://firebase.google.com/docs/database/android/retrieve-data上看到它,但它確實應該說些什麼。

Firebase似乎需要爲每個參數設置一個「get < parameter name>」的確切拼寫的getter。如果你有像「公共布爾HasExtraInput」這樣的東西不會工作。

我測試了「get < parameter name>」,然後「goingToGet < parameter name>」。第一個是有效的,第二個是失敗的,一切都是相同的。而且該方法甚至沒有按照Android Studio使用,所以它只能是Firebase。

有趣的是,它適用於從Android Studio運行時無論如何,但是當使用APK時,它會以不同的拼寫分開。不知道這是爲什麼,但至少我知道如何使它工作。

相關問題