не могу добавить данные в базу данных firebasedatabse - PullRequest
2 голосов
/ 26 октября 2019

Я только что обнаружил 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());
    }
}

1 Ответ

0 голосов
/ 28 октября 2019

Итак, я узнал, что база данных в реальном времени «устарела», и что хранилище пожарных гораздо лучше и проще в использовании. И это! Итак, что я сделал, чтобы добавить только одно «имя» в коллекцию «пользователи», так это:

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();
                    }
                });

            }
        });

    }

Я думаю, что это довольно просто, поэтому я не добавил никаких комментариев для вас, ребята, я имею в виду, если я понимаюэто тогда любой может хаха! В любом случае спасибо за попытку помочь мне!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...