从 Firebase 数据库中恢复数据并在工具栏标题中进行设置



我想在标题工具栏中显示从 Firebase 数据库检索到的数据。但它不起作用。

银行的结构基本上是:

Firebase Database:
- Companies
--ID
---name_company

当前代码:

public class ProfileActivity extends AppCompatActivity {
private Toolbar mToolbar = null;
private String mId_company = null;
private String mNameCompany;
private DatabaseReference mCompanyDB;
private StorageReference mStorage;
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile);
mToolbar = (Toolbar) findViewById(R.id.toolbarPerfilEmpresa);
mToolbar.setTitle(mNameCompany);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
mStorage = FirebaseStorage.getInstance().getReference();
mCompanyDB = FirebaseDatabase.getInstance().getReference().child("Companies");
mCompanyDB.keepSynced(true);
/*  ID Company*/
mId_company = getIntent().getExtras().getString("id_company");
/* Title Activity */
mCompanyDB.child(mId_company).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
mNameCompany = (String) dataSnapshot.child("name_company").getValue();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}

当打开应用程序未显示预期的标题时,将显示活动的名称。 可能出了什么问题?

您必须在快照中再次设置工具栏的标题。

mCompanyDB.child(mId_company).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
mNameCompany = (String) dataSnapshot.child("name_company").getValue();
mToolbar.setTitle(mNameCompany);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
}

最新更新