第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

在firebase android studio中插入數(shù)據(jù)時(shí)如何添加主鍵?

在firebase android studio中插入數(shù)據(jù)時(shí)如何添加主鍵?

慕無忌1623718 2021-10-06 10:23:25
當(dāng)他們在我的應(yīng)用程序中注冊時(shí),如何為每個(gè)用戶添加主鍵?這是我當(dāng)前使用用戶名作為主鍵的代碼(編程中的不良做法):btnRegister.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {            final ProgressDialog mDialog = new ProgressDialog(Register.this);            mDialog.setMessage("Please wait...");            mDialog.show();            table_user.addValueEventListener(new ValueEventListener() {                @Override                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {                    //Check if the username already exists                    if(dataSnapshot.child(username.getText().toString()).exists()){                        mDialog.dismiss();                        Toast.makeText(Register.this, "Username already exists", Toast.LENGTH_SHORT).show();                    }                    else{                        mDialog.dismiss();                        User user = new User(user_fname.getText().toString(), user_lname.getText().toString(), user_email.getText().toString(), user_pass.getText().toString());                        table_user.child(username.getText().toString()).setValue(user);                        Toast.makeText(Register.this, "Account successfully registered", Toast.LENGTH_SHORT).show();                        finish();                    }                }                @Override                public void onCancelled(@NonNull DatabaseError databaseError) {                }            });        }    });我的用戶的模型:public class User {private String FirstName;private String LastName;private String Email;private String Password;public User() {}public User(String firstName, String lastName, String email, String password) {    FirstName = firstName;    LastName = lastName;    Email = email;    Password = password;}我只是 firebase 的新手,這就是為什么我很難理解它。任何幫助將不勝感激,謝謝。
查看完整描述

1 回答

?
Helenr

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊

要為新的子節(jié)點(diǎn)生成唯一鍵,請使用 Firebase 的push()方法:

table_user.push().setValue(user);

生成的密鑰push()在統(tǒng)計(jì)上保證是唯一的,是在客戶端生成的(即使沒有互聯(lián)網(wǎng)連接也可以),并且是按時(shí)間順序排列的。唯一的缺點(diǎn)是它們有點(diǎn)長,因此很難記住。盡管如此,對于基本上按時(shí)間順序排列的數(shù)據(jù)或沒有自然鍵的數(shù)據(jù)來說,它們確實(shí)是最好的鍵。

需要考慮的一件事是使用 Firebase 身份驗(yàn)證來對用戶進(jìn)行身份驗(yàn)證。如果你這樣做,用戶有一個(gè)自然的關(guān)鍵:他們所謂的UID。由于它們有一個(gè)自然鍵,在這種情況下,您應(yīng)該將它們存儲在鍵下。所以:

table_user.child(uidFromAuthentication).setValue(user);


查看完整回答
反對 回復(fù) 2021-10-06
  • 1 回答
  • 0 關(guān)注
  • 191 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號