首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用firebase创建用户配置文件页面?

如何使用firebase创建用户配置文件页面?
EN

Stack Overflow用户
提问于 2018-09-07 16:13:14
回答 2查看 4.2K关注 0票数 2

有没有可能在android原生创建一个用户配置文件页面而不使用任何其他SQL数据库,因为我不擅长JSON。

我想创建两个活动,一个将显示一个个人资料页面登录的用户( firebase身份验证)和其他用户的第二个布局将是编辑个人资料和能力,添加个人资料图片,全名,年龄和地址(我使用firebase电话身份验证,所以不需要使用电子邮件地址或密码)。

我尝试获取用户id并将其与其他属性一起存储到firestore的新集合中,但它对我不起作用。

EN

Stack Overflow用户

发布于 2018-09-07 16:37:24

您可以尝试的是,您可以设置Firebase实时数据库并将值存储在其中,例如:用户名、imageURL、年龄和地址。

在您获得所有这些内容的输入之后(我猜您可以自己完成这项工作)。您可以使用以下代码将详细信息存储在users数据库的Firebase子级中:

代码语言:javascript
复制
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference userRef = rootRef.child("users");
DatabaseRefrence detailRef = ref.child(userName);
detailRef.child("age").setValue(age);
detailRef.child("imageURL").setValue(imageURL);
detailRef.child("address").setValue(address);

要在第二个活动中访问和显示上面的数据,您必须使用event-listeners,如下所示:

代码语言:javascript
复制
// for example you have to read and show the address of the user from database

userRef.child(Current_userName).addListenerForSingleValueEvent(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                        String address = dataSnapshot.child("address").getValue(String.class);


                        }
                    }

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

                    }
                });

您可以这样做,以读取所有数据并在您的配置文件活动中显示它们。对于您希望他们编辑此数据的活动,您可以获取他们的输入并使用Maps更新数据库中的所有值,如下所示:

代码语言:javascript
复制
userRef.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                String identifier = userName;

                Map<String,Object> values = new HashMap<>();
                values.put("address", address);
                values.put("age",age);
                values.put("imageURL",newImageURL);

                userRef.child(identifier).updateChildren(values);

            }

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

            }
        });

这也将触发您的profile类中的侦听器,并相应地更新它们。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52218192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档