Как получить одну строку из массива в Cloud Firestore? - PullRequest
0 голосов
/ 24 февраля 2019

У меня есть массив в Cloud Firestore:

enter image description here

Как получить одну строку из массива в Android Studio, чтобы при нажатии кнопки в приложении TextViewэто значение присвоено?

мой текущий (не рабочий) код:

public class MainActivity extends AppCompatActivity {

Button mButtonGive;
TextView mTextPromo;

FirebaseFirestore mRef = FirebaseFirestore.getInstance();
CollectionReference mDelRef = mRef.collection("Promocode").document("Delivery").collection("Promocode");
CollectionReference mIviRef = mRef.collection("Promocode").document("Ivi").collection("Promocode");


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mButtonGive = findViewById(R.id.mButtonGive);
    mTextPromo = findViewById(R.id.mTextPromo);

    mButtonGive.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mDelRef.get()
                    .addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
                        @Override
                        public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
                            List<DocumentSnapshot> list = queryDocumentSnapshots.getDocuments();

                            String text = list.toString();
                            mTextPromo.setText(text);
                        }
                    });

        }
    });
    }
}

1 Ответ

0 голосов
/ 24 февраля 2019

Насколько я могу видеть на скриншоте, ваш Delivery - это документ, в котором у вас есть Promocode поле массива.В этом случае ваша ссылка на документ:

DocumentReference mDelRef = mRef.collection("Promocode").document("Delivery");

И вы получите промокоды с:

delRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
    @Override
    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
        if (task.isSuccessful()) {
            DocumentSnapshot document = task.getResult();
            if (document.exists()) {
                Log.d(TAG, "DocumentSnapshot data: " + document.getData());
                List<String> promocodes = (List<String) document.get("Promocode");
                Log.d(TAG, "Promocodes: " + promocodes);
            } else {
                Log.d(TAG, "No such document");
            }
        } else {
            Log.d(TAG, "get failed with ", task.getException());
        }
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...