benim Firebase API görüşme bittiğinde bilerek bazı sorun yaşıyorum. Firebase documentation
okuduktan sonra aşağıdaki bulduk:bilmek?
Bunların hepsininDeğer olaylar hep son tetiklenir ve bu anlık çekildiği önce gerçekleşen başka olaylar güncellemelerini içerecek şekilde garanti edilir.
onChildAdded
Çağrı bittikten sonra, daha sonra
ValueEventListener
denir demek anlıyoruz. Sonuç olarak,
RecyclerView
'umu
onChildAdded
işlevine ve ardından
onSingleValueListener
aramasına yerleştirebileceğimi düşündüm, yükleme ekranımı (bu işlev çağrısından önce animasyonu başlatan) canlandırmayı bitirebilir ve devam edebilirim. Ancak, bazı dikkatli
System.out.println
ifadeleri koymak ve
Test 2
hiç çağrılmadan önce benim durumumda,
Test 1
denir bulundu sorunu haline çalıştırmak. Bu aslında istediğim ters bir davranıştır çünkü bu sorunlara neden olur: bitirmek ve sonra çağrılacak
Test 1
yazdırır
onSingleValueListener
işlevi çağırmak için
onChildAdded
fonksiyonunu istedi. Bunun gerçekleşmesinin bir sebebi var mı? Bunun herhangi bir yolu var mı? Bunun neden olduğuyla ilgili bir açıklama için minnettar olurum. Teşekkürler!
public void getComments(final String postId, final Activity activity, final View fragmentView, final View progressOverlay) {
final Firebase commentsRef = firebaseRef.child("/comments");
Firebase linkRef = firebaseRef.child("/posts/" + postId);
linkRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
System.out.println("Test 1");
if (progressOverlay.getVisibility() == View.VISIBLE) {
progressOverlay.setVisibility(View.GONE);
AndroidUtils.animateView(progressOverlay, View.GONE, 0, 200);
fragmentView.findViewById(R.id.rv_view_comments).setVisibility(View.VISIBLE);
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
linkRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
commentsRef.child(dataSnapshot.getKey()).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Comment comment = dataSnapshot.getValue(Comment.class);
System.out.println("Test 2");
application.getCommentsRecyclerViewAdapter().getCommentsList().add(comment);
application.getCommentsRecyclerViewAdapter().notifyDataSetChanged();
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
}
"Firebase linkRef = firebaseRef.child ("/posts/"+ postId);" Eski Firebase API'sini kullandığınızı düşünüyorum; Ben haklı mıyım –
Bu belgeye bakın ve yeni Firebase Veritabanı API'sinde deneyin; "Https://firebase.google.com/docs/database/android/start/"; –