Firebase / Firestore Spinner破解

时间:2018-02-12 21:43:00

标签: java android firebase google-cloud-firestore

我试图了解Firebase / Firestore与Android之间的联系。我想在我的Android应用程序中使用一个简单的Spinner并得到这个不那么合乎逻辑的黑客。

我有一个字段,这是一个字符串,我想循环并将值放入ArrayList。然后,通过ArrayAdapter将此ArrayList设置为Spinner。

final ArrayList<String> list = new ArrayList<String>();
dbFoodName.collection("measures")
        .get()
        .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
            @Override
            public void onComplete(@NonNull Task<QuerySnapshot> task) {
                if (task.isSuccessful()) {
                    for (DocumentSnapshot document : task.getResult()) {
                        list.add(String.valueOf(document.getId()));
                    }
                } else {
                    Log.i("RunLog: ", "Error getting documents: ", task.getException());
                }
            }
        });

Spinner中的内容有效。它看起来恰到好处。但是当我选择一个值时,应用程序崩溃了。

除非。

当我在顶部添加编码值时:

list.add("Choose measurement"); 

像这样:

final ArrayList<String> list = new ArrayList<String>();
list.add("Choose measurement");
dbFoodName.collection("measures")
        .get()
        .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
            @Override
            public void onComplete(@NonNull Task<QuerySnapshot> task) {
                if (task.isSuccessful()) {
                    for (DocumentSnapshot document : task.getResult()) {
                        list.add(String.valueOf(document.getId()));
                    }
                } else {
                    Log.i("RunLog: ", "Error getting documents: ", task.getException());
                }
            }
        });

然后一切正常。我得到了一个很好的标题奖金。 enter image description here

但为什么会这样呢?那里有谁可以解释?

修改 我得到了一个nullPointerException:

 java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference

我发现了关于该主题的这个很棒的链接:What is a NullPointerException, and how do I fix it?

0 个答案:

没有答案