Firebase实时数据库未返回Android调试APK版本上的所有值

时间:2016-08-20 06:42:28

标签: android firebase firebase-realtime-database

当我从Android工作室安装时,我的应用程序工作正常,但在使用调试APK版本时,Firebase由于某种原因不能从实时数据库下载所有值。我不知道为什么它只发生在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版本时为什么不下载它?这是一个错误吗?

感谢。

1 个答案:

答案 0 :(得分:1)

看起来我解决了自己的问题。我没有在文档页面https://firebase.google.com/docs/database/android/retrieve-data上看到它,但它确实应该说些什么。

似乎要求Firebase为每个参数设置一个getter,其拼写为“get&lt; parameter name&gt;”。如果您有类似“public Boolean HasExtraInput”的内容,它将无效。

我测试了“get&lt;参数名称&gt;”然后“goToGet&lt; parameter name&gt;”。第一个工作,第二个工作失败,其他一切都相同。并且根据Android Studio甚至没有使用该方法,因此它只能是Firebase。

有趣的是,它可以在从Android Studio运行时运行,但是当使用APK时,它会因不同的拼写而崩溃。不知道为什么会这样,但至少我知道如何使它发挥作用。