当前位置: 首页 > 知识库问答 >
问题:

使用Firebase按属性获取用户名

冷翼
2023-03-14

如何使用Firebase获取用户名属性,我不知道如何获取用户名、电话号码等属性,我只知道如何获取用户名属性,但不知道用户名属性,也许你可以从下面的Firebase数据库中了解。

这是我的密码

private TextView profileName, profilePhoneno;
private ImageView profilePic;
private TextView emailname;


private DatabaseReference databaseReference;
private FirebaseAuth firebaseAuth;
private FirebaseDatabase firebaseDatabase;
private FirebaseStorage firebaseStorage;

....
....

profilePic = findViewById(R.id.profile_pic_imageView);

profileName = findViewById(R.id.profile_name_textView);

profilePhoneno = findViewById(R.id.profile_phoneno_textView);
emailname=(TextView)findViewById(R.id.textViewEmailAdress);

databaseReference = FirebaseDatabase.getInstance().getReference();
        
firebaseAuth = FirebaseAuth.getInstance();
firebaseDatabase = FirebaseDatabase.getInstance();
firebaseStorage = FirebaseStorage.getInstance();
DatabaseReference databaseReference = firebaseDatabase.getReference(firebaseAuth.getUid());
StorageReference storageReference = firebaseStorage.getReference();
        
storageReference.child("users").child(firebaseAuth.getUid()).child("profile pict").getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
                @Override
                public void onSuccess(Uri uri) {
                    Glide.with(context)
                        .load(uri)
                        .placeholder(R.drawable.ic_all_inclusive)
                        .dontAnimate()
                        .into(profilePic);
                    
                }
            });
if (firebaseAuth.getCurrentUser() == null){
            startActivity(new Intent(context ,SignInActivity.class));
            finish();
        }
final FirebaseUser user=firebaseAuth.getCurrentUser();
databaseReference.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange( DataSnapshot dataSnapshot) {
                    ItemsUser userProfile = dataSnapshot.getValue(ItemsUser.class);
                    profileName.setText(userProfile.getUserName());
                    profilePhoneno.setText(userProfile.getUserPhoneno());
                    emailname.setText(user.getEmail());
                }
                @Override
                public void onCancelled( DatabaseError databaseError) {
                    Toast.makeText(this, databaseError.getCode(), Toast.LENGTH_SHORT).show();
        }
});

共有1个答案

章烨烨
2023-03-14

要从/users/$uid节点中的当前用户获取数据,可以执行以下操作:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference usersRef = rootRef.child("users");
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
usersRef.child(uid).addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange( DataSnapshot dataSnapshot) {
        ...

如果您想要获得所有用户的数据,那么应该是:

usersRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot userSnapshot: dataSnapshot.getChildren()) {
            ItemsUser userProfile = userSnapshot.getValue(ItemsUser.class);
            ...
        }
 类似资料:
  • 我试图创建一个应用程序,在这个应用程序中,我可以在特定的用户帐户中获取/设置数据,我被Firebase所吸引。 我遇到的问题是,当我的结构如下所示时,我不知道如何针对特定的用户数据: 我环顾四周,找不到任何关于如何访问单个数据的信息,更别提当它们的ID是随机散列的时候了。 我该如何根据用户的名字来获取用户的信息呢?如果有更好的方法,请告诉我!

  • 我正在使用Firebase远程配置特性来获取应用程序所需的一些参数。参数值取决于,我在FireBase的Analytics部分的user properties选项卡中定义了它。 在获取remoteConfig之前,我尝试使用方法,但它不起作用。 我不会在网上得到任何关于这个的东西。请帮帮忙。

  • 我使用查询DSL生成实体EntitySerializer,以便使用QueryDSL(与SpringData集成)查询JPA实体。

  • 我正在与Microsoft Graph一起管理Azure广告用户,但在访问用户对象的扩展属性时遇到了一些困难。该属性是在使用Azure AD Graph API创建用户时添加的,如果使用Azure AD API查询该用户,则会自动返回名为“extension_{appId}_{propertyName}”的扩展属性。我想使用Microsoft Graph访问此属性的值,但没有找到正确的调用。 我也

  • 问题内容: 我正在使用Java解析Xml,我想在属性值的帮助下解析元素。 例如 在这种情况下,我想使用att值解析tag1数据。我是java和xml的新手。请引导我。 问题答案: 有多种方法可以做到这一点。您可以使用xPath(示例),DOM Document或SAX Parser(示例)来检索属性值和标记元素。 这是您要求的解决方法。我从不建议使用“ hack”类型,而是使用SAX(请参见示例链

  • 检索给定节点resp的所有属性名(而不是属性值!)的Xpath表达式看起来如何。xml标签? 假设以下XML文档: Xpath//title/@*会选择“eng,fr,easyreading”,但哪个Xpath会选择“lang,lang,type”?