Android 从firebase检索特定数据
我是firebase的新手,我试图查看文档和youtube,但就是想不出来。 我在firebase中有一个简单的id和显示\u名称结构数据库:Android 从firebase检索特定数据,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我是firebase的新手,我试图查看文档和youtube,但就是想不出来。 我在firebase中有一个简单的id和显示\u名称结构数据库: AppName{ users{ HzIYTbIbSzSlinF1Aa52WYUcD4E2{ display_name: "Greg Nks" } } 我希望数据进入一个用户对象,Id(string)和display_name(string) 我试图测试我的检索数据,但我无法得到它。 这是我的代码: public void in
AppName{
users{
HzIYTbIbSzSlinF1Aa52WYUcD4E2{
display_name: "Greg Nks"
}
}
我希望数据进入一个用户对象,Id(string)和display_name(string)
我试图测试我的检索数据,但我无法得到它。
这是我的代码:
public void initializeVariables(View view){
mToolBar = view.findViewById(R.id.users_appBar);
usersRv = view.findViewById(R.id.friends_list_rv);
mLayoutManager= new LinearLayoutManager(view.getContext());
myDataset = new ArrayList<>();
mAuth = FirebaseAuth.getInstance();
mFirebaseDatabase = FirebaseDatabase.getInstance();
myRef = mFirebaseDatabase.getReference();
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if(user!=null){
}
}
};
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
//remember it will called in the start of the fragment
showData(dataSnapshot); //TODO fix the reading from firebase
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
public void showData(DataSnapshot dataSnapshot){
User u= dataSnapshot.getValue(User.class);
u=null;
}
public void初始化变量(视图){
mToolBar=view.findviewbyd(R.id.users\u appBar);
usersRv=view.findviewbyd(R.id.friends\u list\u rv);
mLayoutManager=newlinearlayoutmanager(view.getContext());
myDataset=newArrayList();
mAuth=FirebaseAuth.getInstance();
mFirebaseDatabase=FirebaseDatabase.getInstance();
myRef=mFirebaseDatabase.getReference();
mAuthListener=new FirebaseAuth.AuthStateListener(){
@凌驾
AuthStateChanged上的公共void(@NonNull FirebaseAuth FirebaseAuth){
FirebaseUser=firebaseAuth.getCurrentUser();
如果(用户!=null){
}
}
};
myRef.addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
//记住它将在片段的开头被调用
showData(dataSnapshot);//修复从firebase读取的数据
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
}
公共void showData(DataSnapshot DataSnapshot){
用户u=dataSnapshot.getValue(User.class);
u=零;
}
谢谢
Class User {
private String display_name;
private String userKey;
public User(){
}
public User(String name,String key){
display_name = name;
userKey = key;
}
public void setDisplay_name(Sring name)
{
display_name = name;
}
public String getDisplay_name()
{
return display_name;
}
public void setUserKey(Sring key)
{
userKey = key;
}
public String getUserKey()
{
return userKey;
}
}
现在换个姿势
User u= dataSnapshot.getValue(User.class);
据此:
String key = datasnapshot.getKey();
String name = datasnapshot.child('display_name').getValue().toString();
User user = new User(name, key);
这是钥匙不是idsorry这是我的错我已经编辑了名称的答案现在代码已编辑使用它,请告诉我结果他们,非常感谢!我有一些其他错误,所以我现在不能运行它,如果它工作,我会在以后更新。仅供我理解-datashot.getValue为我提供了id(数据库中的所有id?spesific one?)。我的意思是当我的数据库包含多个用户时会发生什么?当然,别担心!谢谢