2017-11-09 130 views
8
ile başlar

"... The where() yöntemi üç parametre alır: filtrelenecek bir alan, bir karşılaştırma işlemi ve bir değer. Karşılaştırma < olabilir , < =, ==,>, veya> = ..."Firestore Karşılaştırma Operatörleri - içerir, içermez,

biz yürütmek gereken sorgular şunlardır:

  • eşittir (==)
  • değil (eşit ?? ?)
  • daha az (<)
  • daha
  • daha büyük (>)
  • eşit veya daha düşük (< =)
  • ya da daha büyük
  • (???)
  • (???)
  • içermeyen içerir eşittir (> =) öneri böyle Elastic veya Algolia gibi tam metin araması uygulamaktır Bu question yılında (???)

ile

  • başlar. Tam metin aramasına ihtiyacım yok - Sadece aday gösterilen alanları aramak için bu temel operatörlere ihtiyacım var. Ancak sahip olduğum en büyük sorun, uygulamamın önemli süreler boyunca off-line olmasıdır ve çevrimdışı ve çevrimdışı olması gereken verileri önbelleğe almak tam metin araması bir seçenek değildir (Enterprise'ı almanız dışında ($$) $$$$) Cezayir lisansı - ama yine de aradığımız şey için overkill gibi görünüyor).

    "???" olduğunda herhangi bir çözümün var mı ("FIELD", "???", "string") "eşit değildir", "içerir", "içermez" veya "ile başlar"?

    Herhangi bir fikir için minnetle teşekkür ederiz.

  • +1

    google bu conatain destan için bir çözüm ile – suulisin

    +0

    İyi noktaları gelmelidir düşünür ve nerede VEYA operatörü geçerli:

    Sen çok sınırlı yaklaşık edebilirsiniz

    Ancak, sorgu < ve > kullanarak "ile başlayan" sorgularda. Sadece sen yapabilirsin? – AdamG

    +2

    Google/Firebase’in yorumlarından birinde, bu tür şeyler üzerinde çalıştıklarını belirtiyorlar. Google/Firebase’den birinin belirleyici bir zaman çizgisi vermesi gerçekten yararlı olacak şey. Yüksek bir öncelik olduğunu söylüyorlar ve Firestore'un hala Beta'da olduğunu anlıyorum. Ancak, 3 ay veya 3 yıl içinde sahip olmadığımız bir “taahhütte bulunmadığımız” bir taahhüt, gerçekten yararlı olacaktır. Eğer 3 ay sonra belki de olabildiğimiz gibi ya da 3 yıl sonra Firestore'da çevrimdışı arama için alternatif çözümler aramalıyız. –

    cevap

    2

    Cloud Firestore'da yerel "içerir", "içermez", "ile başlar" veya "ile biten" sorguları yok.

    // All names starting with "Sa" 
    db.collection("people") 
        .where("name", ">", "Sa") 
        .where("name", "<", "Saz")