我正在尝试从Android应用程序将数据发送到我的Firebase项目。我已经设置了两个单独的应用程序以连接到该程序包。其中一个应用程序是guest端,来宾可以将数据发送到Firebase,而另一个应用程序是admin端,管理员可以在其中检索数据。
到目前为止,我的来宾应用程序存在问题。我已经创建了代码,应用程序运行正常,但是单击按钮时,它不会发送输入到EditText字段中的数据并将其发送到Firebase。
这是我的主要Java代码:
package com.example.prototype;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
public class CleaningService extends AppCompatActivity {
EditText serviceRequest;
Button sendButton;
DatabaseReference reff;
Guest guest;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cleaning_service);
getSupportActionBar().setTitle("Cleaning Service");
serviceRequest=(EditText)findViewById(R.id.serviceRequest);
sendButton=(Button)findViewById(R.id.sendButton);
guest = new Guest();
reff= FirebaseDatabase.getInstance().getReference().child("Guest");
sendButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick (View view) {
guest.setRequest(serviceRequest.getText().toString().trim());
reff.child("guest1").setValue(guest);
Toast.makeText(CleaningService.this, "message sent successfully.",
Toast.LENGTH_LONG).show();
}
});
}
}
这是我使用setter和getters创建的类:
package com.example.prototype;
public class Guest {
private String Request;
public Guest() {
}
public String getRequest() {
return Request;
}
public void setRequest(String request) {
Request = request;
}
}
尝试添加回调,请检查为什么值不能插入数据库。像这样。从那里,我们可以知道发生了什么事。
reff.child("guest1").setValue(guest).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()){
Toast.makeText(CleaningService.this, "Success" , Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(CleaningService.this, "Error: " + task.getException().getMessage(), Toast.LENGTH_LONG).show();
}
}
});