2016-04-14 20 views
-1

Kullanıcıların diğer kullanıcıları takip edebileceği bir uygulamam var. Bir gerçek zamanlı güncelleme sistemine sahip olmak, bir kullanıcının sahip olduğu toplam takipçi sayısını göstermek istiyorum.Firebase'i kullanarak takipçilerin sayısını gerçek zamanlı olarak nasıl görüntülerim?

Firebase ve Pusher ile oynamaya başladım, ancak bir şeyi anlamıyorum - her kullanıcının kendi "kanalı" olacak mı? Bir takipçi sayacı güncellemesi olarak böyle bir şeyi nasıl ele alırdım?

Ben öğretici takip ve push yöntem listeleri oluşturabileceğiniz anlamına gördüm, sonra bütün kullanıcıların listesini yaşıyor görebilen tek çözüm, her kullanıcı böyle bir nesne şey olmaktan:

{ username: 'john_doe', follower_count: 6 } 

Ama anlamıyorum aslında ön uçta nasıl izlerim? Filtre almalı mıyım?

var user = users.filter(function(user) { return user.username === 'john_doe'; }); 
// code to display user.follower_count 

Yoksa eksik olduğum başka bir yol var mı?

cevap

1

Firebase mantığının çoğu dinleyicilere dayanır, koleksiyonlarınızda meydana gelen olaylara bir dinleyici ekleyebilir ve bu olaylar gerçekleştiğinde bir şeyler yaparsınız. Bu konuda gitmek için

bir yolu olacaktır:

var myFollowerListRef = new Firebase(PATH_TO_YOUR_COLLECTION); 
myFollowerListRef.on("value", function(snapshot) { 
    console.log(snapshot.length); 
}); 

Bu yolla, takipçi toplama değişiklikleri, asenkron fonksiyon yangınlar ve size taze verilerle istediğinizi yapabilirsiniz her zaman. Daha fazla bilgi için

: Bu yardımcı olur

https://www.firebase.com/docs/web/guide/retrieving-data.html

Umut, hala Firebase bir acemiyim.

+0

Bu, bütün bir koleksiyonun değiştiği her seferinde bu işlevi tetikleyeceği anlamına gelmez mi? Sistemde bir kullanıcı adınız olduğunu ve kullanıcı adının da olduğunu varsayalım. Ve birisi seni takip etmeye başladı. Bu değer değişimini dinlerseniz, uygulama benim için de bu işlevi tetiklemez mi? Yalnızca sizin için işlevi tetikleyecek şekilde nasıl filtreleyebilirim (temelde başka bir kullanıcının izlemeye başladığı kişi için). –

+0

Elbette, her kullanıcı için ayrı takip koleksiyonlarına ihtiyacınız olacaktır. – Th0rndike

+0

Doğru, düşündüğüm buydu. Hmm .. Tahminimce bir şekilde dinamik olarak yaratılabilirler. Teşekkürler, şimdi içine bakacağım! –

0

@ Th0rndike'nin yaklaşımı en basit ve nispeten kısa listeler için iyi çalışıyor. Daha uzun listeler için bir işlem kullanmayı düşünün. Firebase documentation on saving transactional data Gönderen:

var upvotesRef = new Firebase('https://docs-examples.firebaseio.com/android/saving-data/fireblog/posts/-JRHTHaIs-jNPLXOQivY/upvotes'); 
upvotesRef.transaction(function (current_value) { 
    return (current_value || 0) + 1; 
}); 

Ama bütün Firebase kılavuzunu okuyun önerilir. Çok yaygın kullanım durumları için çözümler içerir.

İlgili konular