【问题标题】:can't add data to firebasedatabse无法将数据添加到 firebasedatabse
【发布时间】:2019-10-26 13:07:56
【问题描述】:

我刚刚发现了 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());
    }
}

【问题讨论】:

  • 请仅使用android-studio 标签来回答有关 Android Studio IDE 本身的问题。对于一般的 Android 编程问题,请使用android 标签。这样做还可以方便地自动突出显示您问题中的 Android 代码。
  • 你不是从任何地方打电话给addUsersend,所以这可能是一个解释。另一个原因可能是由于您的DataBaseData 课程,所以您可以尝试只做.setValue(true)。第三个常见原因可能是您的数据库的安全规则不允许写入。如果是最后一个,您会在应用程序的 logcat 输出中找到一条错误消息。
  • send 方法是我布局中的 onClick,所以当我单击按钮时我会调用它。其余的我检查了一下,一切都很好......无论如何谢谢:)
  • “一切正常”在这里不是很可行。您的日志中是否有关于权限的错误消息?使用.setValue(true) 时行为是否发生了变化?
  • 完全没有变化。我在大约 2 分钟前重建了它,现在我收到一条错误消息,说它在父上下文或祖先上下文中找不到 send(view)method。我正在写这篇文章时试图找出那是什么。

标签: android firebase firebase-realtime-database


【解决方案1】:

好的,所以我了解到实时数据库“已过时”,而 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();
                    }
                });

            }
        });

    }

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 2020-01-04
    • 2019-05-19
    • 2021-11-30
    • 2021-06-03
    • 2019-12-09
    相关资源
    最近更新 更多