Firebase में नेस्टेड सूचियाँ

वोट
3

समझने के लिए कैसे Firebase में नेस्टेड सूचियों को लागू करने की कोशिश कर रहा है।

एक 1-टू-एन संदेश प्रणाली है, जहां, प्रत्येक संदेश के लिए, आप उस संदेश उपयोगकर्ताओं को, जो प्राप्त किया है की एक सूची बनाए रखने, और पढ़ने के लिए, चाहते हैं: करने के लिए कम करने योग्य समस्या।

पढ़ा है Firebase में सरणी के लिए उत्तम आचरण । सरणियों से बचने के लिए, जैसा कि मैंने एक साथ लेखन है की कोशिश कर रहा है, और वे सिर्फ यहाँ एक अच्छा विकल्प नहीं है।

वर्तमान में सबट्री के भंडारण के प्रत्येक संदेश के नीचे से इस लक्ष्य को हासिल करने की कोशिश कर, प्रत्येक सबट्री उपयोगकर्ताओं की सूची है जो प्राप्त हुआ है जा रहा है, पढ़ने के लिए, या अन्यथा कुछ कार्रवाई प्रदर्शन एक्स संदेश पर Y

msgid0 : {
        authorID: uid0,
        msg     : message text,
        ReceivedBy: {
           uid1 : true,
           uid2 : true
         }
        ReadBy :    {
           uid1 : true
        }
}

प्रश्न: यह एक वस्तु में सीधे इस तरह एक नेस्टेड आंकड़ा संरचना डाल करने के लिए, संभव है?

मैं कुदरती तौर से निम्नलिखित के साथ एक परीक्षण मामले कोशिश कर रहा हूँ:

public class Message {
  private Long authorID;
  private String msg;
  private List<String> receivedBy;
  private List<String> readBy;
}

ref.addValueEventListener(new ValueEventListener() {
  @Override
  public void onDataChange(DataSnapshot dataSnapshot) {
    for(DataSnapshot i: dataSnapshot.getChildren()){
      Message_FB msg = i.getValue(Message_FB.class);
    }
  }
}

लेकिन इसके साथ विफल रहता है:

कारण बना द्वारा: com.fasterxml.jackson.databind.JsonMappingException: START_OBJECT टोकन से बाहर java.util.ArrayList के कहने deserialize नहीं कर सकते

07/04/2016 को 10:56
उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
4

आह, बस का उपयोग करने के लिए आवश्यक Mapकरने के बजाय List

मेरे मामले में:

public class Message {
  private Long authorID;
  private String msg;
  private Map<String, Boolean> receivedBy;
  private Map<String, Boolean> readBy;
}

अब मैं समझता हूँ कि कैसे Firebase साथ पुनरावर्ती संरचनाओं का उपयोग करें। सबसे चीजों की तरह लगता है, यह आसान है - एक बार आप जानते हैं कि कैसे।

07/04/2016 को 11:09
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more