Я хочу прочитать документ значение из пожарный склад. Но у меня это не работает, и я не знаю, в чем проблема. Следует ли использовать получать() или обновления в реальном времени. Я пробовал оба, но у меня не работает это мой код. Я подтвердил свою позицию тостом, и все в порядке.
Как решить эту проблему?
public class SingleAdActivity extends AppCompatActivity {
String x;
String a;
String z;
String coname;
TextView Co_Name;
private ListenerRegistration listenerRegistration;
DocumentReference firebaseFirestore;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_single_ad);
Co_Name = findViewById(R.id.SingleAd_CoName);
ad_discription = findViewById(R.id.disrcibe_ad);
phone_number = findViewById(R.id.phone);
x = getIntent().getStringExtra("single_ad_position");
a = getIntent().getStringExtra("single_ad_categoryP");
z = getIntent().getStringExtra("documentId");
firebaseFirestore = FirebaseFirestore.getInstance().collection("MainCategories")
.document(String.valueOf(a))
.collection("Ads")
.document(z);
@Override
protected void onStart () {
super.onStart();
listenerRegistration = firebaseFirestore
.addSnapshotListener(this, new EventListener<DocumentSnapshot>() {
@Override
public void
onEvent(@Nullable DocumentSnapshot documentSnapshot, @Nullable FirebaseFirestoreException e) {
if (e != null) {
Toast.makeText(SingleAdActivity.this, "error", Toast.LENGTH_SHORT).show();
return;
}
assert documentSnapshot != null;
if (documentSnapshot.exists()) {
coname = documentSnapshot.getString("CompanyName");
Co_Name.setText(coname);
} else {
// Co_Name.setText(a);
}
}
});
}
@Override
protected void onStop () {
super.onStop();
listenerRegistration.remove();
}
}
}
Приятно слышать, что вы смотрите это видео, но похоже, что это еще одна проблема. Чтобы следовать правилам этого сообщества, отправьте еще один свежий вопрос, содержащий mcve, чтобы я и другие пользователи могли вам помочь. Что касается этой проблемы, не могли бы вы добавить структуру своей базы данных?
хорошо, я сделаю это как скриншот.
Это хорошо. Пожалуйста, сообщите мне, когда вы добавите.
Я делаю это так:
FirebaseFirestore firestoreDb = FirebaseFirestore.getInstance();
firestoreDb..collection(yourCollection)
.document(yourDocument)
.get()
.addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
Object yourObject = task.getResult().toObject(YourClassName.class);
} else {
if (task.getException() != null)
{
task.getException().printStackTrace();
}
}
}
});
Амр, пожалуйста, добавьте структуру своей базы данных.