2017-05-08 121 views
0

林新与火力点,我不知道如何表达我的个人资料活动的java火力当前用户的信息,这是我当前的代码firebase android如何从数据库中获取当前用户信息?

databaseReference.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      showData(dataSnapshot); 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    }); 
private void showData(DataSnapshot dataSnapshot) { 
    for(DataSnapshot ds : dataSnapshot.getChildren()){ 
     DataUser uinfo = new DataUser(); 

     uinfo.SetName(ds.child(Userid).getValue(DataUser.class).name); 
     uinfo.SetDOB(ds.child(Userid).getValue(DataUser.class).name); 


    } 
} 

这是我的setter的getter

public class DataUser { 

String name, DOB; 

public DataUser(){ 
} 

public void SetName(String name){ 
    this.name = name; 
} 
public String getName(){ 
    return name; 
} 
public void SetDOB(String DOB){ 
    this.DOB = DOB; 
} 
public String getDOB(){ 
    return DOB; 
} 

} 
数据视图的java

我的问题是我的代码是否正确?而且我得到了文本视图的名称和dob,但我不知道如何让他们显示我已经在我的代码中调用的用户信息?

+0

请添加您的数据库结构。 –

+0

https://www.dropbox.com/s/3fxu5xmjsdkfpfn/S__17350661.jpg?dl=0这里是我的数据库 –

回答

0

您可以从firebaseUser对象这样获得的用户数据:

FirebaseAuth auth = FirebaseAuth.getInstance(); 
    FirebaseAuth.AuthStateListener authListener = new FirebaseAuth.AuthStateListener() { 
     @Override 
     public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { 
      FirebaseUser firebaseUser = firebaseAuth.getCurrentUser(); 
      if (firebaseUser != null) { 
       String uid = firebaseUser.getUid(); 
       String email = firebaseUser.getEmail(); 
       String name = firebaseUser.getDisplayName(); 
       //and so on for other values 

       editText.setText(name); 

       Toast.makeText(MainActivity.this, "You are signed in Firebase!", Toast.LENGTH_SHORT).show(); 
      } else { 
       Toast.makeText(MainActivity.this, "You are signed out from Firebase!", Toast.LENGTH_SHORT).show(); 
      } 
     } 
    }; 

希望它能帮助。

+0

嗯我想使目前的用户名和dob显示在他们自己的edittext你知道怎么做吗? –

+0

请使用:'editText.setText(getName(());''和editText.setText(getDOB());' –

+0

您是否知道? –

相关问题