12

我已經整合了我的android應用的firebase auth。假設用戶有郵件[email protected]。我想添加一些額外的信息給用戶,如用戶名稱,職業和地址。我如何連接用戶auth表與我的android應用程序來做到這一點?用firebase添加額外的用戶信息

我需要爲此編寫任何API嗎?

+0

難道要存儲用戶信息,像真正的數據庫表或想獲得從郵件的個人信息id –

+1

是的,我希望他們像一個真正的數據庫。可能是一個nosql json就夠了,否則table就會很好地繼續下去。 現在我打電話給auth.createUserWithEmailAndPassword來創建用戶,我在控制檯中找到它們。 –

+0

你有沒有通過實時數據庫在firebase –

回答

7

首先,在db中創建一個users目錄。然後,使用您從authn進程獲得的用戶唯一標識,將用戶信息存儲在users/{userid}之下。

要實現此目的,您需要詳細瞭解Firebase數據庫。看到這裏:https://firebase.google.com/docs/database/android/save-data

+0

有沒有辦法創建自定義用戶ID喜歡我想用電子郵件和密碼創建用戶,但用戶名爲1 –

+0

@MasterYoda有一個原因,爲什麼Firebase數據庫不使用增量作爲他們的唯一ID。相反,他們提供自己的唯一標識符 –

+0

@teckwei,有一個名爲'firebase-admin'的節點模塊可以使用。謝謝。我幾天前得到它。 –

2

你必須創建另一個數據庫表說「用戶」。在成功登錄後,首次註冊時必須在用戶表中創建一個新行。

public static void writeNewUser(DatabaseReference databaseReference, String userId, String name, String email, int accountType) { 
    User user = new User(name, email, accountType); 

    databaseReference.child("users").child(userId).setValue(user); 
} 

你可以參考https://github.com/firebase/quickstart-android/tree/61f8eb53020e38b1fdc5aaeddac2379b25240f3b/database

5

你不需要編寫任何自定義代碼來做到這一點。 Firebase已具備您可以使用的功能。

您需要做的第一件事是確保用戶只能訪問他們存儲的數據。要做到這一點,去Database/Rules和改變你的規則是:

{ 
"rules": { 
    "my_app_user": { 
    "$uid": { 
     ".write": "auth != null && auth.uid == $uid", 
     ".read": "auth != null && auth.uid == $uid" 
    } 
    } 
} 
} 

然後保存在火力地堡數據庫的新細節,這樣做:

 MyAppUser user = new MyAppUser(); 
     user.setAddressTwo("address_two"); 
     user.setPhoneOne("phone_one"); 
     ... 

     mDatabaseReference.child("my_app_user").child(firebaseUser.getUid()).setValue(user). 
       addOnCompleteListener(DetailsCaptureActivity.this, 
            new OnCompleteListener<Void>() { 
        @Override 
        public void onComplete(@NonNull Task<Void> task) { 
         if (task.isSuccessful()) { 
          ... 

孩子my_app_user絕的名稱在您的代碼和Firebase規則中都會匹配,否則它將不會持續。

如果一切順利的應該是,你應該看到在你的數據庫中的細節:

enter image description here