我已经在Android Studio上创建了一个非常简单的应用,我想连接到Firebase。我创建了一个课程:
public class Lek {
public String nazwa;
public String nazwa1;
public Lek() {
}
public String getNazwa() {
return nazwa;
}
public String getNazwa1() {
return nazwa1;
}
public void setNazwa(String nazwa) {
this.nazwa = nazwa;
}
public void setNazwa1(String nazwa1) {
this.nazwa1 = nazwa1;
}
}
在MainActivity中,我尝试连接到Firebase数据库:
public class MainActivity extends AppCompatActivity {
EditText e1, e2;
Button b1;
DatabaseReference reff;
Lek lek;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
e1 = findViewById(R.id.editText);
e2 = findViewById(R.id.editText2);
b1 = findViewById(R.id.button);
lek = new Lek();
reff = FirebaseDatabase.getInstance().getReference().child("lek");
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
lek.setNazwa(e1.getText().toString().trim());
lek.setNazwa(e2.getText().toString().trim());
reff.push().setValue(lek);
}
});
}
}
我还创建了一个简单的.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:text="Name"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:text="Name"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editText" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editText2" />
</androidx.constraintlayout.widget.ConstraintLayout>
但是问题是数据没有正确上传到网站上。我制定了关于书写和阅读的规则。在Android Studio中,我已正确连接并牢固地设置了依赖项。当我尝试上传数据时,它们没有出现在网站上。我的Google帐户在网站和Android Studio中都是相同的。有人有同样的问题吗?
编辑: 我已经成功创建了Toast方法,但失败了,但是它在屏幕上没有显示任何内容:
reff.child("lek1").setValue(lek)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
// Write was successful!
// ...
Toast.makeText(MainActivity.this, "Success", Toast.LENGTH_LONG).show();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Write failed
// ...
Toast.makeText(MainActivity.this, "Failed", Toast.LENGTH_LONG).show();
}
});
答案 0 :(得分:0)
嗨,尝试一下:
在哪里创建新对象:
lek = new Lek();
...删除该行并附加代码在按钮上单击以不使用该类来上传数据,而是使用HashMap来实现,
HashMap<String, Object> lekHash = new Hashmap();
lekHash.put("lek1", e1.getText().toString().trim());
lekHash.put("lek2", e2.getText().toString().trim();
之后,您现在可以像这样设置参考值:
reff.child("lek").setValue(lekHash).addOnCompleteListener(new OnComple...){
if(task.isSuccessful){
//Toast Whatever here
}
}
很显然,所有这些“代码”实际上都不是代码,不幸的是,我没有我的IDE,但希望您能指点一下。并尝试对变量使用更具描述性的名称,这样更易于理解。另外,我推荐一个名为delegation.
的概念