我刚刚发现 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/