Tôi mới vào firebase
và nosql
cơ sở dữ liệuLàm thế nào để lấy danh sách cụ thể của dữ liệu từ căn cứ hỏa lực
tôi đang cố gắng để lấy một số dữ liệu cụ thể từ một căn cứ hỏa lực. Tôi có một nút universities
và nút đó có nhiều số nhận dạng duy nhất làm nút có nhiều dữ liệu hơn trong đó. Tôi muốn truy xuất name
từ mỗi nút.
Vui lòng xem điều này.
Những gì tôi đã cố gắng cho đến nay: Tôi cố gắng sử dụng addChildEventListener
nhưng điều này chỉ nghe đứa con đầu lòng. Tôi đã gỡ lỗi nó và nó chỉ hiển thị các giá trị của đứa con đầu tiên của nút universities
.
myRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
List<University> university = new ArrayList<>();
Map<String, Object> td = (HashMap<String, Object>) dataSnapshot.getValue();
Log.d("TAG",dataSnapshot.getValue().toString());
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Tôi cũng đã thử addValueEventListener
. Điều này nghe toàn bộ nút và trả về toàn bộ dữ liệu, nhưng tôi không thể trích xuất "tên" cho nó vì nó chứa các định danh duy nhất.
Vui lòng hướng dẫn tôi đi đúng hướng.
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
University university = dataSnapshot.getValue(University.class);
List<University> universities = (List<University>) dataSnapshot.getValue(University.class);
*//*List<String> lst = new ArrayList<String>();
for(DataSnapshot dsp : dataSnapshot.getChildren()){
lst.add(dsp.getKey());
}
Log.d("TAG",lst.toString());*//*
Map<String, Object> td = (HashMap<String, Object>) dataSnapshot.getValue();
*//*List<Object> values = new ArrayList<Object>(td.values());
List<String> list=new ArrayList<String>();
for(int i=0; i<values.size(); i++){
list.add((String) values.get(i));
}*//*
Log.d("TAG", university.toString());
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
ok tôi đã sử dụng phương pháp đầu tiên. Phương pháp đó. Lưu trữ dữ liệu kiểu hashMap vào danh sách. Tôi có nghĩa là nó có tổng cộng 3 chỉ số bây giờ. Và mỗi chỉ mục chứa loại dữ liệu HashMap. Và tôi muốn lấy tên của nó. tôi sẽ làm như thế nào? –
Tôi thấy cách sử dụng bằng cách sử dụng trong bài đăng của bạn là khác nhau. trong mã của tôi (trong một phương thức), bên trong vòng lặp for bạn sẽ nhận được đối tượng Univerty, và sử dụng có thể truy cập vào thuộc tính name theo university.name –
cảm ơn bạn nó đã giúp –