2016-03-31 16 views
1

Uygulamamda bir kullanıcı oturum açar. İlk olarak, kullanıcının posta adresindeki kimliğini doğrularım. Geri arama yönteminde Mevcut bir POJO nesnesini bir Firebase veritabanında depolamak için en iyi yöntem

protected Boolean doAuthenticateWithEmail(final String mEmail, String mPassword) 

kullanıcı aşağıdaki POJO ile Firebase veritabanında saklanır onAuthenticated:

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; 
}} 

Bu e-posta adresi temsil eden bir düğüm altında UserObject depolamak için kodudur.

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

Sorum şu: kullanıcının zaten varsa en iyi yöntem nedir? Verilerin mevcut olup olmadığını kontrol etmeli veya mevcut verilerin üzerine yazmalı mıyım?

cevap

0

Bir çek gerekli olduğunu ortaya çıkıyor.

 /** 
    * 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); 
      } 
     } 
İlgili konular