【发布时间】:2019-09-22 17:25:32
【问题描述】:
我的启动活动有些问题。 当用户登录时,打开的第一个屏幕是 Splash 活动。 在启动活动中,我正在检查 UserSingleton 类是否为空(例如 if(UserSingleton.getInstance==null))。 如果它为 null ,我想将数据库中的数据(来自 UserDetails 路径的所有数据)设置为 Singleton 类(我需要它,因为我将使用这些数据更多次)。
所以我现在有什么。
我的飞溅活动:
private FirebaseAuth mAuth;
private FirebaseDatabase db;
private DatabaseReference users;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
mAuth = FirebaseAuth.getInstance();
db = FirebaseDatabase.getInstance();
users = db.getReference();
loadUserDetailsData();
}
public void loadUserDetailsData() {
if (UserSingleton.getInstance().getmUserName() == null) {
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
};
users.addListenerForSingleValueEvent(eventListener);
}
}
UserSingleton.class
public class UserSingleton {
private static UserSingleton instance = null;
private String mUserName;
private String mEmail;
private String mPartnerName;
private String mEventLocation;
private String mEventDate;
private String mPassword;
public String getmPassword() {
return mPassword;
}
public void setmPassword(String mPassword) {
this.mPassword = mPassword;
}
private UserSingleton() {
//Empty constructor
}
public static UserSingleton getInstance() {
if (instance == null) {
instance = new UserSingleton();
}
return instance;
}
public String getmUserName() {
return mUserName;
}
public void setmUserName(String mUserName) {
this.mUserName = mUserName;
}
public String getmEmail() {
return mEmail;
}
public void setmEmail(String mEmail) {
this.mEmail = mEmail;
}
public String getmPartnerName() {
return mPartnerName;
}
public void setmPartnerName(String mPartnerName) {
this.mPartnerName = mPartnerName;
}
public String getmEventLocation() {
return mEventLocation;
}
public void setmEventLocation(String mEventLocation) {
this.mEventLocation = mEventLocation;
}
public String getmEventDate() {
return mEventDate;
}
public void setmEventDate(String mEventDate) {
this.mEventDate = mEventDate;
}
【问题讨论】:
-
请仅使用
android-studio标签来回答有关 Android Studio IDE 本身的问题。对于一般的 Android 编程问题,请使用android标签。
标签: java android firebase firebase-realtime-database singleton