gpt4 book ai didi

java - 将现有 POJO 对象存储在 Firebase 数据库中的最佳实践

转载 作者:太空宇宙 更新时间:2023-11-04 12:45:54 25 4
gpt4 key购买 nike

在我的应用程序中,用户登录。首先,我通过邮件地址对用户进行身份验证。

protected Boolean doAuthenticateWithEmail(final String mEmail, String mPassword)

在回调方法 onAuthenticated 中,用户通过以下 POJO 存储在 Firebase 数据库中:

public class User {

private String emailAddress;
private String profitNumber;
private String userName;

public User() {
//Default constructor used by Firebase
}

public User(String emailAddress, String profitNumber, String userName) {
this.emailAddress = emailAddress;
this.profitNumber = profitNumber;
this.userName = userName;
}

public String getEmailAddress() {
return emailAddress;
}

public String getProfitNumber() {
return profitNumber;
}

public String getUserName() {
return userName;
}}

这是将用户对象存储在表示邮件地址的节点下的代码。

Firebase userRef = new Firebase(Constants.FIREBASE_URL_USERS);
userRef.setValue(user.getEmailAddress().replace(".",","));
Firebase mailRef = userRef.child(user.getEmailAddress().replace(".",","));
mailRef.setValue(user);

我的问题是:如果该用户已经存在,最佳实践是什么?我应该首先检查数据是否存在,还是直接覆盖现有数据。

最佳答案

事实证明,检查是必要的。

     /**
* Encode user email replacing "." with "," to be able to use it
* as a Firebase db key
*/
String mEncodedEmail = mEmail.replace(".", ",");

/* If the user doesn't exists, make a user */
final Firebase userLocation = new Firebase(Constants.FIREBASE_URL_USERS).child(mEncodedEmail);
userLocation.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
/* If nothing is there ...*/
if (dataSnapshot.getValue() == null) {

userLocation.setValue(user);
}
}

关于java - 将现有 POJO 对象存储在 Firebase 数据库中的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36327140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com