マイFirebaseデータベースの構造は次のとおりです。 enter image description hereアンドロイド - 指定したUIDとfirebaseからデータを取得することはできません
私は私がその鍵を持っている場合、一部のユーザーの完全な名前を取得します。
マイコード:
public class ProfileActivity extends AppCompatActivity implements View.OnClickListener {
private FirebaseAuth firebaseAuth;
private TextView textView;
private Button logbutton,wantToDeliverButton,lookForButton;
private String userName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile);
Firebase.setAndroidContext(this);textView = (TextView)findViewById(R.id.textView2);
Firebase usersRef = new Firebase("https://myfirstfirebaseauth.firebaseio.com");
firebaseAuth = FirebaseAuth.getInstance();
if (firebaseAuth.getCurrentUser() == null){
finish();
startActivity(new Intent(this,LoginActivity.class));
}
FirebaseUser user = firebaseAuth.getCurrentUser();
Firebase ref = usersRef.child("User").child(user.getUid());
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
userName = dataSnapshot.getValue(User.class).getFullName();
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
textView.setText("welcome "+userName);
しかし、それはnullにのTextViewを設定します。私はtoastをonDataChange()メソッドの中に入れようとしますが、動作しません。それは方法の中に入ることさえないようです。
私がtextView.setText("welcome "+ user.getEmail());
を書いていると、正確なメールが届くので、FirebaseUser user = firebaseAuth.getCurrentUser();
という行は正しいです。
これを解決するにはどうすればよいですか?正しいリスナーを使用していますか?私はデータベース内の何かを変更したくないだけです。
編集:それはonCancelled(に行きます)。
あなたの質問には 'アンドロイド-studio'は関係ありません。不適切なタグでスパムしないでください!タグが削除されました。 –
申し訳ありませんがチームメイトは、私はあなたが使用しているもののツールは重要ではありません...スパムに – user3552460
を意味アンドロイドstudio..didn'tでそれを書きました。あなたの問題に関連してタグを付けます。もし 'firebase'関連のコードで問題があるならば' firebase'タグを付けます( 'java'も本当に関連していません - ここではJava言語には何の問題もありません)そのコードを作成するために使用するツールは、あなたの質問には関係ありません。 –