[Android] Firebase डेटा से एक ArrayList बनाएँ


Answers

अगर आप एंड्रॉइड के साथ फायरबसे का उपयोग कर रहे हैं, तो मैं आपको फ़ायरबेज-आई घटक, फायरबेज यूआई का उपयोग करने का सुझाव दूंगा, यह बहुत उपयोगी होगा

या बूलियन में डालने की कोशिश करने के बजाय, स्ट्रिंग के साथ प्रयास करें और इसे बूलियन में परिवर्तित करें

Question

मेरे ऐनरीएस्ट ऐलिस में मेरे मेनएक्टिविटी के लिए परिभाषित एक अर्रेईलिस्ट है

मैं समझता हूं कि कैसे उपयोगकर्ता के हितों को पुनर्प्राप्त करने और इसे मेरी सरणी सूची में जोड़ने का प्रयास करने में कठिनाइयों का सामना करना पड़ रहा है।

यहां बताया गया है कि मेरा फ़ायरबेस डेटा कैसे सेट किया गया है:

मैं समझता हूं कि मुझे डेटा को असिंक्रोनस रूप से लोड करना होगा, लेकिन मैं इस बारे में उलझन में हूँ कि मुझे इसके बारे में कैसे जाना चाहिए।

ArrayList में जोड़ने का प्रयास करने के लिए यहां मेरा कोड है:

public class MainActivity extends AppCompatActivity {


private DatabaseReference eventDatabase;
private DatabaseReference usersDatabase;

private FirebaseAuth mAuth;
private String currentUserID;

private ArrayList<String> userInterests = new ArrayList<String>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    eventDatabase = FirebaseDatabase.getInstance().getReference().child("Event");
    usersDatabase = FirebaseDatabase.getInstance().getReference().child("Users");

    mAuth = FirebaseAuth.getInstance();

    currentUserID = mAuth.getCurrentUser().getUid();

    usersDatabase.child(currentUserID).child("interests").addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for(DataSnapshot postSnapshot : dataSnapshot.getChildren()){
                boolean isInterested = (Boolean)postSnapshot.getValue();
                if (isInterested){
                    userInterests.add(postSnapshot.getKey());
                }
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

    System.out.println(userInterests);

मैं चाहता हूं कि ArrayList को उपयोगकर्ता की हितों से मिलना चाहिए, अगर यह डेटाबेस में गलत है, तो उसे सूची में नहीं जोड़ा जाएगा। उदाहरण: [प्रतिस्पर्धा, संस्कृति, शिक्षा ... आदि]

जब यह कंसोल में सूची लौटाता है, तो मुझे सिर्फ एक खाली सूची दिखाई देती है - "[]"