Предполагая, что ваша docRef
DocumentReference правильная, чтобы получить значения свойств Amount
, PhoneNumber
и Status
, измените следующие строки кода:
Object value = document.getData();// Here I added the data to the object type value
System.out.println("values"+ value);
до
String amount = document.getString("Amount");
String phoneNumber = document.getString("PhoneNumber");
String status = document.getString("Status");
System.out.println(amount + " / " + phoneNumber + " / " + status);
Предположим, вы хотите получить значения свойств для ваших документов Пригласить1, вывод будет:
10 / 9876543210 / Pending
Редактировать: Согласно вашему комментарию, я понимаю, что вы хотите получить значения этих свойств из всех документов, но в своем коде вы используете следующую ссылку, которая указывает на один документ, а не на всю коллекцию.
DocumentReference docRef = db
.collection("deyaPayUsers")
.document(mAuth.getUid())
.collection("Split")
.document(mAuth.getUid())
.collection("SentInvitations")
.document(documentId); //Reference to a document
Видите, последний вызванный метод - .document(documentId)
? Чтобы получить все документы, вам необходимо использовать CollectionReference
. Поэтому, пожалуйста, используйте следующий код:
DocumentReference docRef = db
.collection("deyaPayUsers")
.document(mAuth.getUid())
.collection("Split")
.document(mAuth.getUid())
.collection("SentInvitations").get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
Map<String, Object> map = document.getData();
String amount = map.get("Amount").toString();
String phoneNumber = map.get("PhoneNumber").toString();
String status = map.get("Status").toString();
System.out.println(amount + " / " + phoneNumber + " / " + status);
}
} else {
Log.d(TAG, "Error getting documents: ", task.getException());
}
}
});
Вывод будет:
10 / 9876543210 / Pending
20 / 1234566789 / Pending
Edit2:
docRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
DocumentSnapshot document = task.getResult();
if (document.exists()) {
Map<String, Object> map = document.getData();
for (Map.Entry<String, Object> entry : map.entrySet()) {
Map<String, Object> m = (Map<String, Object>) entry.getValue();
StringBuilder s = new StringBuilder();
for (Map.Entry<String, Object> e : m.entrySet()) {
s.append(e.getValue() + " ");
}
Log.d(TAG, s.toString());
}
}
}
}
});
Вывод будет:
10 9876543210 Pending
20 1234566789 Pending
//And so on