如果您想获取Firebase数据库中所有的键,并将它们作为一个列表返回,可以使用以下代码示例来实现:
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.ValueEventListener;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private DatabaseReference mDatabase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDatabase = FirebaseDatabase.getInstance().getReference();
getAllKeys();
}
private void getAllKeys() {
mDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List keysList = new ArrayList<>();
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
String key = snapshot.getKey();
keysList.add(key);
}
// 打印所有键
for (String key : keysList) {
Log.d("Key", key);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.d("Error", databaseError.getMessage());
}
});
}
}
上述代码中,getAllKeys()
方法会添加一个 ValueEventListener
来监听数据库的更改。当数据发生改变时,onDataChange()
方法会被调用,并遍历 DataSnapshot
的子项来获取每个键,并将其添加到 keysList
列表中。
最后,您可以根据需要在循环中处理这些键,或者将它们传递给其他方法进行进一步操作。