首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Firebase中的DataSnapshot getValue()返回null

Firebase中的DataSnapshot getValue()返回null
EN

Stack Overflow用户
提问于 2018-07-03 07:19:21
回答 1查看 1.4K关注 0票数 1

在我的主要活动的onCreate()方法中,我的一个例程是与Firebase数据库通信,以完成以下三件事之一: 1)如果用户是返回用户,则更新他们在本地使用SharedPreferences存储的Firebase上的所有首选项。2)如果用户是新用户,并且没有存储在云上的数据(他们从未下载过应用程序),则什么也不做。3)如果用户是新用户,但在其唯一的Facebook配置文件ID下存储了首选项,请下载他们的首选项并将其应用于SharedPreferences实例。

我肯定错过了一些关键的,可能是基本的,关于DataSnapshot如何工作的见解,因为我不能让我的以下代码工作:

    private void initializeFirebase(){
    my_db = FirebaseDatabase.getInstance();
    DatabaseReference my_ref = my_db.getReference();

    Map<String, ?> values = sharedPreferences.getAll();

    if (values.isEmpty()){
        final String id = Profile.getCurrentProfile().getId();
        my_ref = my_ref.child("userid");
        my_ref.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if (dataSnapshot.getKey().equals(id)){
                    data = (Map<String, Object>)dataSnapshot.getValue();
                }
            }

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

            }
        });
    }
    else {
        for (Map.Entry<String, ?> entry : values.entrySet()) {
            my_ref.child("userid").child(Profile.getCurrentProfile().
                    getId()).child(entry.getKey()).setValue(entry);
        }
    }
}

data是一个全局映射变量,在执行getValue()后始终为null。

我的JSON树被组织为: root、->、users、->、userid、->,每个首选项都作为userid节点的子节点。任何帮助都将不胜感激!!

EN

回答 1

Stack Overflow用户

发布于 2018-07-03 07:36:19

根据getValue()接口文档,可以返回null:

将此快照中包含的数据作为本机类型进行

,如果此位置没有数据,则为null。

因此,您要查询的位置没有数据。

我猜您不想在引用中硬编码"userid“的值。我敢打赌,您的意思是使用上一行中的用户id:

final String id = Profile.getCurrentProfile().getId();
my_ref = my_ref.child(id);  // id instead of "userid"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51144765

复制
相关文章

相似问题

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