DatabaseReference和FirebaseDatabase - 无法解析符号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DatabaseReference和FirebaseDatabase - 无法解析符号相关的知识,希望对你有一定的参考价值。

我目前正在研究android上的学院级聊天消息应用程序。我正在使用Firebase作为我的云服务器。目前,我在Cannot Resolve Symbol error的下一行面对DatabaseReferenceFirebaseDatabaseMainActivity

private DatabaseReference root = FirebaseDatabase.getInstance().getReference().getRoot();

我想使用Firebase建立聊天室。我知道如何执行此操作,以及如何链接我的Firebase数据库的键和值。我还知道如何通过Firebase Cloud更新Android设备的密钥和值。

但我无法解决Cannot resolve Symbol error。以下是我的MainActivity的代码。我还在制作这个应用程序的初始阶段。

    package com.ranatalha.realtimechat;

import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    private Button buttonAddRoom;
    private EditText editTextAddaChatRoom;
    private ListView listViewChatRooms;

    private ArrayAdapter<String> arrayAdapter;
    private ArrayList<String> list_of_rooms = new ArrayList<>();

    private String Entered_Username;


    private DatabaseReference root = FirebaseDatabase.getInstance().getReference().getRoot();

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

        buttonAddRoom = (Button) findViewById(R.id.buttonAddRoom);
        editTextAddaChatRoom = (EditText) findViewById(R.id.editTextAddaChatRoom);
        listViewChatRooms = (ListView) findViewById(R.id.listViewChatRooms);

//************Creation of an array list to store the list of active chat rooms************
        arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, list_of_rooms);

        listViewChatRooms.setAdapter(arrayAdapter);
//*****************************************************************************************
        request_user_name();

        buttonAddRoom.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

            }
        });
    }
    private void request_user_name(){

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Enter Your Name:");

        final EditText inputUsername = new EditText(this);
        builder.setView(inputUsername);

        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                Entered_Username = inputUsername.getText().toString();

            }
        });

        builder.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                dialogInterface.cancel();
                request_user_name();
            }
        });

        builder.show();

    }
}
答案

你能否仔细检查一下你的build.gradle(Module:app)文件中是否有这些依赖项?

implementation 'com.google.firebase:firebase-core:16.0.7'    
implementation 'com.google.firebase:firebase-database:16.0.6'

添加后错误就消失了。

另一答案

您需要将这些依赖项添加到您的

1)build.gradle(Module:app)文件。

implementation 'com.google.firebase:firebase-database:11.6.2'

2)build.gradle(顶级构建)

classpath 'com.google.gms:google-services:3.1.0'

3)在Android Studio的app模块中添加google-services.json

另一答案
implementation 'com.google.firebase:firebase-core:11.0.4'
implementation 'com.google.firebase:firebase-database:11.0.4'

以上是关于DatabaseReference和FirebaseDatabase - 无法解析符号的主要内容,如果未能解决你的问题,请参考以下文章

如何将增量发票编号放入 DatabaseReference

如何修复“java.lang.NoSuchMethodError:com.google.firebase.database.DatabaseReference.setValue”

Firebase 实时数据库 - DatabaseReference.push().getKey() 是一个时间戳

Firebase DatabaseReference 按指定值过滤

DatabaseReference setValue 像在循环中一样工作

如何为具有特定子子值的子项检索 Firebase DatabaseReference?