android - 无法将数据添加到 firebasedatabse

标签 android firebase firebase-realtime-database

我刚刚发现 firebase 并想测试我是否可以将它用作我的 android 应用程序的数据库。我想我正在向它发送数据,但在 firebase 控制台上它显示 nada。我尝试了一切自己修复它,但似乎我缺乏知识。请赐教:(


import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

public class home extends AppCompatActivity {

    private FirebaseDatabase mFirebaseI;
    private DatabaseReference mFirebaseD;
    private String uMail;

    EditText userMail; // textbox where i write data to be sent to databse


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

        userMail = findViewById(R.id.mail); 
        mFirebaseI = FirebaseDatabase.getInstance();
        mFirebaseD = mFirebaseI.getReference("DataUsers");
        uMail=mFirebaseD.push().getKey();

    }

    public void addUser(String mail)
    {
        DataBaseData users = new DataBaseData(mail); //class i made with just one string attribute
        mFirebaseD.child("Users").child(uMail).setValue(users);
    }

    public void send(){
        addUser(userMail.getText().toString().trim());
    }
}

最佳答案

好的,所以我了解到实时数据库已经“过时”,而 firestore 更好用且更易于使用。它是!所以我为“用户”集合添加一个“名称”所做的是这样的:

public class home extends AppCompatActivity {

    private FirebaseFirestore mFirestore;
    //private String uMail;

    EditText userMail;
    Button btnSend;


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

        btnSend = findViewById(R.id.send);
        userMail = findViewById(R.id.mail);

        mFirestore = FirebaseFirestore.getInstance();



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

                String username = userMail.getText().toString(); //pseudo a save dans la bdd

                Map<String, String> userMap = new HashMap<>(); //hashmap obligatoire pour utiliser firestore

                userMap.put("name", username); // suavegarder le pseudo dans la bdd sous le nom de document "name"

                mFirestore.collection("users").add(userMap).addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
                    @Override
                    public void onSuccess(DocumentReference documentReference) {
                        Toast.makeText(home.this, "added", Toast.LENGTH_SHORT).show();
                    }
                }).addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {

                        String error = e.getMessage();
                        Toast.makeText(home.this, "failed:" + error, Toast.LENGTH_SHORT).show();
                    }
                });

            }
        });

    }

我觉得这很简单所以我没有为你们添加任何评论我的意思是如果我理解它那么任何人都可以哈哈!无论如何,谢谢你试图帮助我!

关于android - 无法将数据添加到 firebasedatabse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58571057/

相关文章:

database - 如何在 firestore 中获取 setData 的 Id?

swift - Swift 上的 Firebase,如果查询为空,如何得到通知?

java - 从预生成的 html 添加突出显示到 span

android - 如何在android的 View 寻呼机中禁用滑动

android - 应用程序编译和运行良好,apk 构建良好,但 IDE 显示同步失败

android - 使用自定义适配器时刷卡不显示

Android ExoPlayer onProgressChanged

firebase - Firestore 中的 getDocuments() 和 snapshots() 有什么区别?

javascript - 如何在 Firebase 中进行内容搜索?

javascript - 传递异步获取的属性