firebase वास्तविक समय डेटाबेस में नोड के अंतर्गत सभी डेटा पुनः प्राप्त

वोट
0

मैं एक firebase वास्तविक समय डेटाबेस है और एक लीडरबोर्ड बनाने के लिए डेटा का उपयोग करना चाहते हैं। इम मेरी स्कोर नोड में सभी डेटा प्राप्त करने का प्रयास लेकिन यकीन है कि कैसे के माध्यम से सभी उपयोगकर्ताओं के स्कोर प्राप्त करने के लिए पाश के लिए नहीं कर रहा हूँ।

डेटाबेस संरचना नीचे के रूप में है: यहाँ

कोड मैं उपयोग करने की कोशिश की है:

package com.example.securityapp;

import androidx.appcompat.app.AppCompatActivity;

import android.nfc.Tag;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.Query;
import com.google.firebase.database.ValueEventListener;

import static java.lang.System.in;

public class leaderboard extends AppCompatActivity {

    DatabaseReference databaseUsers;
    FirebaseDatabase database = FirebaseDatabase.getInstance();
    FirebaseAuth mAuth;
    TextView score;
    private static final String TAG = leaderboard;



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

        databaseUsers = database.getReference().child(Scores);
        mAuth = FirebaseAuth.getInstance();
        FirebaseUser user = mAuth.getCurrentUser();
        score = (TextView) findViewById(R.id.leaderboard_score);


        databaseUsers.child(Scores).addValueEventListener(new ValueEventListener() {
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                        System.out.println(The scores are  + dataSnapshot.child(Points).getValue().toString());
                    }
                }


            @Override
            public void onCancelled(DatabaseError databaseError) {
             // Getting Post failed, log a message
             Log.w(TAG, loadPost:onCancelled, databaseError.toException());

    }


});

        }
}
13/02/2020 को 23:59
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
0

ऐसा लगता है कि आप डेटा का उपयोग और स्कोर बाहर मुद्रित करने के लिए एक "श्रोता" वर्ग का उपयोग कर रहे हैं। "ValueEventListener" श्रोता आप "onDataChange ()" लागू किया, एक डेटा बदलाव नहीं आया है जब तक नहीं कहा जा होगा विधि के साथ संलग्न है,।

मुझे यकीन है कि कैसे आप इस वर्ग का उपयोग कर रहे नहीं कर रहा हूँ, लेकिन अपने प्रश्न के आधार पर, मैं यह सोचते हैं कि तुम सिर्फ जब "leaderboard.onCreate ()" विधि के निष्पादित होने स्कोर प्रिंट करना चाहते हैं। क्या ये सही है? अगर ऐसा है, तो आप एक श्रोता संलग्न होने की जरूरत नहीं हो सकती है।

14/02/2020 को 01:31
का स्रोत उपयोगकर्ता

वोट
1

आप अपने JSON में एक स्तर जा रहे हैं बहुत गहरा और पढ़ रहे हैं /Points/Points। चूंकि उस नोड मौजूद नहीं है, तो आप अपने में एक खाली स्नैपशॉट प्राप्त onDataChange

database.getReference().child("Scores").addValueEventListener(new ValueEventListener() {
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
            Log.i(TAG, "The scores are " + dataSnapshot.child("Points").getValue(Long.class));
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        Log.w(TAG, "loadPost:onCancelled", databaseError.toException());
    }
});
14/02/2020 को 03:09
का स्रोत उपयोगकर्ता

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