Получить несколько данных из Firebase в мое приложение для Android - PullRequest
0 голосов
/ 03 октября 2018

Я создаю приложение, которое должно извлечь несколько данных из моей базы данных Firebase и сохранить данные в моем приложении.

Это моя структура базы данных, и я хочу получить все данные от 1 до последнего числа, а также получить данные внутри каждого номера.

enter image description here

Кто-нибудь знает, как это сделать?Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Чтобы получить все эти объекты в узле Destination, вам нужно перебрать объект DataSnapshot с помощью метода getChildren(), например:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference destinationRef = rootRef.child("Destination");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String name = ds.child("name").getValue(String.class);
            Log.d(TAG, name);
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage());
    }
};
destinationRef.addListenerForSingleValueEvent(valueEventListener);

Если вы используете класс модели, пожалуйста,используйте следующий код:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference destinationRef = rootRef.child("Destination");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            YourClass yourClass = ds.getValue(YourClass.class);
            Log.d(TAG, yourClass.getName());
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage());
    }
};
destinationRef.addListenerForSingleValueEvent(valueEventListener);
0 голосов
/ 03 октября 2018

Попробуйте этот код и измените его в соответствии с именем вашей базы данных и т. Д.

public class DisplayActivity extends AppCompatActivity {
private RecyclerView mRvData;
private DisplayAllData allDataAdapter;
private DatabaseReference mDatabase;
private TextView mTvEmpty;
private FirebaseDatabase mFirebaseInstance;
private List<User> mUserList = new ArrayList<>();

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.display_data);
    initView();
}

private void initView() {
    mFirebaseInstance = FirebaseDatabase.getInstance();
    mDatabase = mFirebaseInstance.getReference("usersDb/UserTable");

    mRvData = findViewById(R.id.rvData);
    mTvEmpty = findViewById(R.id.dlTvEmpty);
    mRvData.setLayoutManager(new LinearLayoutManager(this));
    mDatabase.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            mUserList.clear();
            for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
                User user = dataSnapshot1.getValue(User.class);
                mUserList.add(user);
            }
            allDataAdapter = new DisplayAllData(DisplayActivity.this, mUserList);
            mRvData.setAdapter(allDataAdapter);
            allDataAdapter.notifyDataSetChanged();
            if (mUserList.isEmpty())
                mTvEmpty.setVisibility(View.VISIBLE);
            else
                mTvEmpty.setVisibility(View.GONE);
        }


        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

}

}

дополнительную информацию см. По этой ссылке https://www.simplifiedcoding.net/firebase-realtime-database-crud/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...