Firebase'de joker sorguları yapmak mümkün mü? Örneğin,Firebase'de joker karakter sorgusu var mı?
https://foo.firebaseio.com/person.json?orderBy="name"&equalTo="Lun*"
Firebase'de joker sorguları yapmak mümkün mü? Örneğin,Firebase'de joker karakter sorgusu var mı?
https://foo.firebaseio.com/person.json?orderBy="name"&equalTo="Lun*"
Hayır. Fakat kinda.
Joker sorgusu yapamazsınız, ancak verilerinizi buna izin verecek şekilde yapılandırabilirsiniz. Disk alanı ucuz Unutmayın: Örneğin
, Burada başka düğümünde çürümüş veriler yapısı
users
uid_0
name: "Leroy"
Mağaza var Ler
ile başlar biz isim kullanıcıları için eşleşmeleri bulmak istiyorsunuz.
decomposed
uid_0
L: true
Le: true
Ler: true
Lero: true
Leroy: true
sonra
ref.queryOrderedByChild("Ler").queryEqualToValue(true).observeEventType(.ChildAdded,
withBlock: { snapshot in
print(snapshot.key)
})
Ler'e eşit çocuklar için gerçek değeri için çürümüş düğümde bir sorgu gerçekleştirmek Ve Firebase yana
desteklemediği uid_0 snapshot.key olacak joker arama firmamız için Apigee BaaS ile gitmeye karar verdi.
bu sorunun cevabı nasıl? – mamu
Sorudaki döngüyü kapatmak zorundaydım. Firebase içinde bir çözümün bulunmadığı açıktı, bu yüzden BaaS sağlayıcımızı değiştirmeye karar verdik. Özünde, belgelere ve soruya verilen cevaplara dayanarak görebileceğimiz bir cevap yoktur. – MoreScratch
Sorununuzu nasıl çözdüğünüze dair herhangi bir açıklama sunmuyorsunuz ya da sorunuzu gerçekten cevaplıyor muydunuz? – Learn2Code
Biliyorum biraz zaman geçti ama başkalarının ilgisini çekebileceğini düşündüm. foo*
gibi şeyler için bir joker karakter arama "sahte" (temelde belirli bir dizeyle başlayan değerleri arayabilirsiniz).
iOS & Swift için bu şekilde görünecektir:
dbReference.child("person").queryOrdered(byChild: "name").queryStarting(atValue: "foo").queryEnding(atValue: "foo\u{f8ff}").observe(.childAdded) { (snapshot: FIRDataSnapshot) in
print("\(snapshot.key) - \(String(describing: snapshot.value))")
}
Bunun uç anahtar başından + çok yüksek kod noktasında eşittir name
özellik için bir başlangıç ve bitiş değerlerini kullanıyor yapar Unicode aralığı. Unicode'daki çoğu normal karakterden sonra olduğu için, sorgu foo
ile başlayan tüm değerlerle eşleşir.
Parlak cevap arkadaş .. şerefe –
İhtiyacım olanı elde etmenin ilginç bir yolu. Tek sorun, bir ismin herhangi bir kısmı için bir joker yapmam gerektiğidir (ör. * Roy *). Ayrıca, db’imde ~ 200 bin kişiye sahip olacağım. Ölecek mi? – MoreScratch
Ölçeklendirilebilir, (Firebase ölçeklenebilir), büyük olasılıkla bu boyut için bir veri kümesi gerçekçi değildir. Otomatik doldurma gibi bir şey arıyorsanız, söyleyeceğiniz ilk birkaç karakterin adını yazdığınızda, daha gerçekçi olur. Bir isim atabileceğimiz bir ObjC sınıfı hazırladık ve adı tüm aranabilir kombinasyonlara ayıracak ve sonra bunu bir Firebase düğümünde saklayacak; Bununla birlikte oldukça otomatik hissediyor, ancak binlerce isim ile çalışmayı denemedik. Firebase ekibi için muhtemelen iyi bir soru. – Jay
Veritabanınızın tüm dize alanlarında bir joker arama yapmak istediğinizi düşünün, her bir alanın N değerini – Oswaldo