0
我正在使用電子郵件/密碼提供程序在我的Android項目中使用Firebase-UI。該數據庫的結構是:添加默認值firebase
profiles
user-id
age
height
user-id
在註冊我想在配置文件中輸入一個新的節點與默認值。用戶可以稍後編輯和保存值。對於現有用戶,我只想讀取這些值並在UI中顯示它們。我已經嘗試使用ChildEventListener和dataSnapshot.hasChild(uid)來檢測用戶是否已經存在但它不工作。這是AuthStateListener:
mAuthStateListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = mFirebaseAuth.getCurrentUser();
if(user != null)
{
onSignedInInitialize(user);
}
else
{
onSignedOutCleanup();
startActivityForResult(AuthUI.getInstance().createSignInIntentBuilder().setProviders(providers).build(), SIGN_IN);
}
}
};
這是我曾嘗試:
private void onSignedInInitialize(final FirebaseUser user) {
userRef = mProfilesDBReference.child(user.getUid());
if(mValueEventListener == null)
{
mValueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.getValue() == null)
{
UserProfile profile = new UserProfile("username", null, 100, 100);
userRef.setValue(profile);
UpdateUI(profile);
}
else
{
UserProfile profile = dataSnapshot.getValue(UserProfile.class);
UpdateUI(profile);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};
}
userRef.addValueEventListener(mValueEventListener);
}
請參閱我分享的代碼。 – JSmith
感謝它的工作:) – JSmith