Firebase 引用对象无法解析为类型

Posted

技术标签:

【中文标题】Firebase 引用对象无法解析为类型【英文标题】:Firebase reference object cannot be resolved to a type 【发布时间】:2014-02-08 09:05:05 【问题描述】:

我只是按照以下文档开始构建我的 android 应用程序:https://www.firebase.com/docs/reading-data.html

设置库和权限后,我开始输入极少的几行代码。我立即得到了如下所示的编译错误列表:

然后我尝试输入“dataRef”。和 Ctr+Space,没有默认建议,但有一条红色消息说“dataRef 无法解析为类型”。 dataRef 是对 firebase 数据库的引用(就像文档的 sn-p 中的那个)

那么到底出了什么问题?

Ps:我也试过清理项目。 我相信我的 Firebase 库是最新的,因为它的名称是“firebase-client-jvm-LATEST”,我今天刚刚下载了它。 我还没有添加任何 xml 或构建任何东西。 下面是我的 MainActivity.java:

package com.biz.nah;

import com.firebase.client.DataSnapshot;
import com.firebase.client.Firebase;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity 

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Create a reference to database
        String url = "https://nah.firebaseio.com";
        Firebase dataRef = new Firebase(url);

        dataRef.addListenerForSingleValueEvent(new ValueEventListener() 
             @Override
             public void onDataChange(DataSnapshot snapshot) 
                 // Do some stuff once
             

             @Override
             public void onCancelled() 
                 System.err.println("Listener was cancelled");
             
        );
    

    @Override
    public boolean onCreateOptionsMenu(Menu menu) 
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    

【问题讨论】:

你能发布 MainActivity.java 吗? 【参考方案1】:

代码看起来是正确的,尽管您的 Eclipse 窗口的屏幕截图证明并非如此。

这些错误听起来像是 eclipse 没有正确解析您的代码。

另一个线索是在大纲视图中urldataref 显示为MainActivity 的字段而不是函数变量,就像您在代码中发布的那样。

试试:

关闭并打开 Eclipse 项目 -> 清理

【讨论】:

嗨,我也意识到我的代码和屏幕截图的区别。但那是因为后来我尝试将我的代码放入 onCreate 方法中。我以前做过很多次清洁工作,效果很好。然后我关机,睡觉,几个小时后醒来,再次打开eclipse,同样的问题,但是现在,当我开始输入(不是复制粘贴sn-p)时,它可以工作了。复制的代码块,即使相似,仍然是相同的错误,所以我删除了它。

以上是关于Firebase 引用对象无法解析为类型的主要内容,如果未能解决你的问题,请参考以下文章

在登录功能上使用 FireBase 进行 Google 登录时出错。无法解析“对象”中的方法“getSignInIntent”

IOS - 从 Firebase 解析对象 - 下载完成前运行的代码

Mono类型解析

“java.rmi.Remote 无法解析为类型”是啥意思?

以下类的超类型无法解析

iOS:无法解析来自 firebase 的推送通知