gpt4 book ai didi

java - 如何通过单次声明获取当前用户信息?

转载 作者:行者123 更新时间:2023-11-29 08:22:09 26 4
gpt4 key购买 nike

我有很多 Activity ,它在我的应用程序中也有很多方法,每个 Activity 都需要当前用户信息,如来自 firebase 数据库的名字、姓氏、用户名。为此,我每次都必须通过以下代码声明变量。

 UserRef.child(currentUserID).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot)
{
if(dataSnapshot.exists())
{
String myProfileImage=dataSnapshot.child("username").getValue().toString();
String userfirstname=dataSnapshot.child("firstname").getValue().toString();
String userlastname=dataSnapshot.child("lastname").getValue().toString();
}

}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});

那么,现在的问题是,有没有办法在全局范围内声明这三个变量,并且可以在任何 Activity 中使用它?

最佳答案

免责声明:

虽然我即将建议的方法有效,但它是一种粗略的方法。要以正确的方式(使用 FirebaseUser)解决这个问题,请查看 my other answer .


您可以使用 SharedPreferences 解决这个问题。简而言之,当用户注册时,您将他的详细信息保存到名为 SharedPreferences 的临时存储中。每次需要它时,您都可以用最少的代码行简单地检索它。

要将用户详细信息保存到 SharedPreferences 中,您可以使用以下方法:

public void saveToSharedPreferences(String firstName, String lastName, String photoUrl) {

// declare your sharedpreferences and editor variables
SharedPreferences sharedPreferences = context.getSharedPreferences("USER", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();

// save your values
editor.putString("firstName", firstName);
editor.putString("lastName", lastName);
editor.putString("photoUrl", photoUrl);

// commit your changes
editor.apply();

}

要检索您的值,请使用以下代码行:

SharedPreferences sharedPreferences = context.getSharedPreferences("USER", MODE_PRIVATE);

String firstName = sharedPreferences.getString("firstName", "not found");
String lastName = sharedPreferences.getString("lastName", "not found");
String photoUrl = sharedPreferences.getString("photoUrl", "not found");

Note that "not found" represents your placeholder String just in case there is no data to retrieve.

希望对您有所帮助。编码愉快!

关于java - 如何通过单次声明获取当前用户信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56842868/

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