java - 读取写入 Firebase 实时数据库

标签 java android firebase firebase-realtime-database

我已连接到工具 >> Firebase 中保存和检索数据下显示的 Firebase。我的项目是在 android studio 中使用 Java 进行的。

这是我从 logcat 和下面的代码得到的错误:

12-16 11:42:42.699 2485-2550/? E/PlayCommon: [120] com.google.android.play.a.g.a(466): Failed to connect to server: java.net.UnknownHostException: Unable to resolve host "play.googleapis.com": No address associated with hostname 12-16 11:43:00.005 1534-1547/? E/memtrack: Couldn't load memtrack module

这个包com.example.sammay.firebaseapplication;

 import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.text.TextUtils;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Spinner;
    import android.widget.Toast;

    import com.google.firebase.database.DatabaseReference;
    import com.google.firebase.database.FirebaseDatabase;

    public class MainActivity extends AppCompatActivity {

        EditText editTextName;
        Button buttonAdd;
        Spinner spinnerGenres;

        DatabaseReference databaseArtist;

        @Override
        protected void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

    //        databaseArtist = FirebaseDatabase.getInstance().getReference("artists");

            editTextName = (EditText)findViewById(R.id.editTextName);
            buttonAdd = (Button)findViewById(R.id.buttonAddArtist);
            spinnerGenres = (Spinner)findViewById(R.id.spinnerGenres);

            FirebaseDatabase database = FirebaseDatabase.getInstance();
            DatabaseReference myRef = database.getReference("root");

            myRef.setValue("Hello, World!");

            buttonAdd.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    addArtist();
                }
            });

        }

        private void addArtist(){
            String name = editTextName.getText().toString().trim();
            String genre = spinnerGenres.getSelectedItem().toString();

            if(!TextUtils.isEmpty(name)){

                String id = databaseArtist.push().getKey();

                Artist artist = new Artist(id, name, genre);

                databaseArtist.child(id).setValue(artist);

                Toast.makeText(this, "Artist added", Toast.LENGTH_LONG).show();

            }else{
                Toast.makeText(this, "You should enter a name", Toast.LENGTH_LONG).show();
            }
        }
    }

我还使用上述详细信息创建了必要的艺术家类。 一切看起来都正确,但当我启动应用程序并输入详细信息并单击按钮时,实时数据库没有任何反应。

最佳答案

出现 UnknownHostException 的最常见原因是 AndroidManifest.xml 文件中缺少 Internet-Permission。要解决此问题,请在包名称后面添加以下代码行:

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

关于java - 读取写入 Firebase 实时数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47845320/

相关文章:

swift - 从 Firebase 读取到 UIpickerView

java - 模拟 ProceedingJoinPoint 签名

java - Runtime.getRuntime().exec() 调用的命令提示符返回并打印 "Not Enough memory resources are available to process this command"

Android 应用内计费项目价格

java - 从内部类获取外部类变量(局部变量)

android点击事件以编程方式

javascript - React-Native + Firebase,登录时写入和读取,否则只能读取

java - 如何在java中打印带换行符的字符串

java - 使用synchronized方法和 block 解决Java线程中的计数器问题

android - 从内部监听器中删除 Firestore 快照监听器