gpt4 book ai didi

android - 检索 Firebase 数据并将其分配给变量

转载 作者:行者123 更新时间:2023-11-29 20:06:58 25 4
gpt4 key购买 nike

目前我正在尝试从我的 Firebase 数据中检索数据,稍后我将使用这些数据在 onCreate() 方法中帮助创建我的抽屉导航。

在 Mike Penz 的 Material Drawer library 中我正在使用它有一个选项来指定帐户信息,例如 AccountHeader 的名称和电子邮件,因此我试图在创建抽屉导航之前从我的 Firebase 数据库中的用户表中检索这些详细信息。

不幸的是,使用 addValueEventListener()addListenerForSingleValueEvent() 并不能满足我的需要,因为变量(userEmail、userRole、userName)仅在导航后分配值抽屉已创建。

if(authData != null) {
firebase.child("users").child(authData.getUid()).addValueEventListener(new ValueEventListener() {

@Override
public void onDataChange(DataSnapshot
Users user = snapshot.getValue(Users.class);
userEmail = authData.getProviderData().get("email").toString();
userRole = user.getRole();
if (user.getFirstName() != null && user.getLastName() != null) {
userName = user.getFirstName() + " " + user.getLastName();
}
}

@Override
public void onCancelled(FirebaseError firebaseError) {
System.out.println("The read failed: " + firebaseError.getMessage());
}
});

我已经在这个 addValueEventListener 方法内部和这个方法之后记录了变量的值,所以我知道变量正在检索值,但只是在我的抽屉导航创建之后而不是之前。

希望我已经提供了足够的信息让某人能够帮助我找到解决这个问题的方法,如果我还没有让我知道你在评论中需要什么的话。

最佳答案

我假设您问的是如何在创建后将项目添加到 Drawer 中。即使在创建之后,也可以更新删除添加 项目到抽屉。有关更多信息,请在此处查看 https://github.com/mikepenz/MaterialDrawer#modify-items-or-the-drawer ,

编辑:

    AccountHeader header = new AccountHeaderBuilder()
.withActivity(this)
.withHeaderBackground(R.drawable.header)
.withOnAccountHeaderListener(new AccountHeader.OnAccountHeaderListener() {
@Override
public boolean onProfileChanged(View view, IProfile profile, boolean current) {
//Handle Profile changes
return false;
}
})
.build();

Drawer drawer = new DrawerBuilder()
.withActivity(this)
.withToolbar(toolbar)
.withAccountHeader(header)
.addDrawerItems(
new DividerDrawerItem(),
new SecondaryDrawerItem().withName(R.string.drawer_item_settings),
new SecondaryDrawerItem().withName(R.string.drawer_item_about)
)
.withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {
@Override
public boolean onItemClick(View view, int position, IDrawerItem drawerItem) {
// Handle clicks
return true;
}
})
.build();

//Later
header.addProfile(new ProfileDrawerItem().withIcon(bitmap).withName(name).withEmail(email), 0);

这是如何工作的?

关于android - 检索 Firebase 数据并将其分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35528389/

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