簡體   English   中英

Android firebase查詢,僅獲得一個結果。 按下按鈕時結果不同

[英]Android firebase query, get one result only. Different result when button is pressed

 Counter4 = Counter2 - Counter1 + 1;
    Query qname = mDatabase.child("variablex").equalTo(variablexofuser).getRef().getParent().limitToFirst(Counter1).limitToLast(Counter4);

這是我要使用的代碼。 每次按下按鈕時,Counter1就會增加1。Counter2是數據庫中的用戶數,變量x等於登錄用戶的變量x。

 Query qname3 = mDatabase.child("variablex").equalTo(variablexofuser).getRef();
    qname3.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            testref = dataSnapshot.getChildrenCount();
            Counter2 = (int) testref;
        }

目的是讓第一個滿足條件的用戶(variablex = variablexofuser),然后是第二次按下按鈕時滿足條件的第二個用戶,依此類推。 因此,基本上每按一次按鈕只會得到一個不同的結果。 我的代碼可以工作嗎? 是否有更簡單或更正確的方法來實現這一目標? 謝謝!

{
  "Mp6FLLdcSeXpfGPwP5i0ZBNZxd63" : {
    "Age" : "20",
    "Full name" : "Mike",
    "Intent" : "Both",
    "Reward" : "Nothing ",
    "Variablex" : "one name",
    "imageuri" : "images/Mp6FLLdcSeXpfGPwP5i0ZBNZxd63.jpeg"
  },
  "fWJcCPF16dUMKn1Sxz01VjF9Kgq2" : {
    "Age" : "19",
    "Full name" : "Other guy",
    "Intent" : "Looking for help",
    "Reward" : "nothing ",
    "Variablex" : "one name",
    "imageuri" : "images/fWJcCPF16dUMKn1Sxz01VjF9Kgq2"
  }
}

如果要使用Firebase數據庫查詢位置的子節點,請首先使用要訂購/過濾的屬性調用orderByChild()

你也應該getRef()在查詢的結尾,因為這將然后就再次給你的消息的未篩選列表。

所以:

Query qname3 = mDatabase.orderByChild("variablex").equalTo(variablexofuser);
qname3.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        testref = dataSnapshot.getChildrenCount();
        Counter2 = (int) testref;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM