【发布时间】: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 代码。 -
你不是从任何地方打电话给
addUser或send,所以这可能是一个解释。另一个原因可能是由于您的DataBaseData课程,所以您可以尝试只做.setValue(true)。第三个常见原因可能是您的数据库的安全规则不允许写入。如果是最后一个,您会在应用程序的 logcat 输出中找到一条错误消息。 -
send 方法是我布局中的 onClick,所以当我单击按钮时我会调用它。其余的我检查了一下,一切都很好......无论如何谢谢:)
-
“一切正常”在这里不是很可行。您的日志中是否有关于权限的错误消息?使用
.setValue(true)时行为是否发生了变化? -
完全没有变化。我在大约 2 分钟前重建了它,现在我收到一条错误消息,说它在父上下文或祖先上下文中找不到
send(view)method。我正在写这篇文章时试图找出那是什么。
标签: android firebase firebase-realtime-database