gpt4 book ai didi

android - 如何在使用 FirebaseUI 时从 Firebase 获取值(value)

转载 作者:行者123 更新时间:2023-11-30 00:07:19 24 4
gpt4 key购买 nike

我正在使用 Auth Firebase 用户界面。它是这样工作的:用户第一次进行身份验证,然后在 onCreate 方法应用程序中使用用户名 + 电子邮件 + 状态在数据库中创建一个新用户。但问题是它会触发每个 onCreate 并将所有值设为默认值。例如,如果我在 settingsActivity 中更改状态,它会在数据库中发生变化并且一切正常,但是在我再次运行应用程序并且我在 MainActivity 中的 onCreate 方法触发我的状态再次成为默认值。我想用 if/else 语句检查值,并检查数据库中的值是否与默认值不同,但不知道如何获取该值。也许你可以建议另一种情况?无论如何,谢谢你的时间。

 //Authstate Listener
mAuthstateListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
Log.v(TAG, "user is not null");
//Create new user
String uid = user.getUid();
String userName = user.getDisplayName();
mDatabaseReference = FirebaseDatabase.getInstance().getReference().child("Users").child(uid);
HashMap<String, String> userMap = new HashMap<>();
userMap.put("name", userName);
userMap.put("status", "Your status is here...");
userMap.put("image", "default");
userMap.put("thumb_image", "default");
mDatabaseReference.setValue(userMap);

最佳答案

您可以 read data once使用 SingleValueEventListener:

            mDatabaseReference = FirebaseDatabase.getInstance().getReference().child("Users").child(uid);

mDatabaseReference.addListenerForSingleValueEvent(new ValueEventListener {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.child("image").getValue(String.class).equals("default"))
{
//the image is still the default one
}
else{
//the image is no longer the default
}
}

@Override
public void onCancelled(DatabaseError databaseError) {
}
});

关于android - 如何在使用 FirebaseUI 时从 Firebase 获取值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48755616/

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