2016-04-07 49 views
2

'daki değişiklikleri sürekli olarak izlemek için Değişikliklerin izlenmesi için her zaman Firebase veritabanına açık bir bağlantıya sahip bir sunucu oluşturmaya çalışıyorum ve ardından bir işlev gerçekleştiriyorum (durumda, push bildirimi gönderin). Bu soru açık bir bağlantının nasıl sürdürüleceğiyle ilgilidir.Firebase

Mümkünse sunucum için Python kullanmak istiyorum. Firebase için güzel bir Python sarıcısı var gibi görünüyor: https://github.com/ozgur/python-firebase

Veriyi geri göndermek için şimdi veritabanımı kolayca sorgulayabilirim, ancak değişiklikleri sürekli olarak izlemek için herhangi bir belge yok gibi görünüyor.

Bunu nasıl yaparım?

cevap

2

Bu Python sarıcısı REST API'sini kullanıyor gibi görünüyor. Bu durumda, gözlemcileri gerçek zamanlı geri çağırma işlevlerini kabul eden verilere ekleyen çekirdek Firebase işlevselliğini kullanamazsınız.

Aslında, şimdi benzer bir komut dosyası üzerinde çalışıyorum. Benim durumumda Firebase veritabanında sakladığımız günlükleri gözlemlemek istiyorum. Biraz araştırma yaptıktan sonra nodejs'i Firebase verilerine gözlemlemek ve yeni gelen verileri daha sonra işleyebileceğim harici bir dosyaya yazmak için kullanmaya karar verdim (Evet, ayrıca Python'u tercih ediyorum, bu yüzden sadece kullanıyorum) veriyi veritabanından almak için nodejs).

var ref = new Firebase("https://example.firebaseio.com"); 
var logsRef = new Firebase("https://example.firebaseio.com/logs"); 

var authToFirebase = function(loggedCallback) { 
    ref.authWithPassword({   
     email: "[email protected]", 
     password : "password" 
    }, function(error, authData) { 
     if (error) { 
      console.log("Login Failed!", error); 
     } else { 
      console.log("Authenticated successfully with uid " + authData.uid); 
      loggedCallback(); 
     } 
    }) 
} 

authToFirebase(function() { 
    //attaching child_added observer to logs 
    logsRef.on("child_added", function(snap) {     
    }, function(errorObject) { 
     console.log("The read failed: " + errorObject); 
    }); 
}); 

bunu oldukça basit görebileceğiniz gibi: İşte

benim komut snippet'idir. Öncelikle mevcut bir hesaba giriş yaptığımı fark ettim, çünkü gözlemlemek istediğim veriler Firebase kuralları mekanizması aracılığıyla yetkisiz kullanıcılar tarafından kullanılamıyor.

Burada "child_added" etkinliğini kullanıyorum, ancak muhtemelen gereksinimlerinize göz atmak istediğiniz olay türünü ayarlamak isteyebilirsiniz.

+0

Ayrıntılı yanıt için teşekkürler, gerçekten takdir ediyorum! Yani mantığım fonksiyonun içine girer {...}, '? – Apollo

+0

Evet, doğru. NodeJS API, Firebase için javascript API'siyle aynıdır ve çok iyi belgelenmiştir. Verileri nasıl alacağınızı buradan kontrol edebilirsiniz: https://www.firebase.com/docs/web/guide/retrieving-data.html – pkacprzak

+0

Harika cevap! [Firebase ayrıca REST üzerinden akış etkinliği verilerini de destekler. (Https://www.firebase.com/blog/2014-03-24-streaming-for-firebase-rest-api.html). Verileri tüketmek için [python-sse paketini] (https://pypi.python.org/pypi/sseclient/0.0.3) kullanabilirsiniz ve bu durumda anket yapmak zorunda kalmazsınız. –