DatabaseReference和FirebaseDatabase - 无法解析符号
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DatabaseReference和FirebaseDatabase - 无法解析符号相关的知识,希望对你有一定的参考价值。
我目前正在研究android上的学院级聊天消息应用程序。我正在使用Firebase作为我的云服务器。目前,我在Cannot Resolve Symbol error
的下一行面对DatabaseReference
和FirebaseDatabase
的MainActivity
:
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 - 无法解析符号的主要内容,如果未能解决你的问题,请参考以下文章
如何修复“java.lang.NoSuchMethodError:com.google.firebase.database.DatabaseReference.setValue”
Firebase 实时数据库 - DatabaseReference.push().getKey() 是一个时间戳
Firebase DatabaseReference 按指定值过滤