java - 无法从 Java Android Studio 中的另一个类调用变量
问题描述
我正在做一个将实时删除 Firebase 记录的功能。一个人只能通过知道由.getKey()
. 但是,当我想实现RecordID
删除时,我无法调用RecordID
. 有谁知道我在这里做错了什么?谢谢。
我的上课
package com.example.sossystem;
public class SosRecords {
String RecordID;
String FullName;
String PhoneNumber;
String EmailAddress;
public SosRecords(){
}
public SosRecords(String recordID, String fullName, String phoneNumber, String emailAddress) {
RecordID = recordID;
FullName = fullName;
PhoneNumber = phoneNumber;
EmailAddress = emailAddress;
}
public String getRecordID() {
return RecordID;
}
public String getFullName() {
return FullName;
}
public String getPhoneNumber() {
return PhoneNumber;
}
public String getEmailAddress() {
return EmailAddress;
}
}
错误
错误显示在Stop button
btnStopSOS.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onStop();
stopLocationUpdates();
deleteRecords(RecordID);
result.setText("Dashboard");
btnStartSOS.setEnabled(true);
btnStopSOS.setEnabled(false);
}
});
}
private void deleteRecords(String fullName) {
DatabaseReference delRecord = FirebaseDatabase.getInstance().getReference("Records").child(RecordID);
delRecord.removeValue();
Toast.makeText(MainActivity.this, "The SOS Request is Stopped!", Toast.LENGTH_SHORT).show();
}
我的代码
btnStartSOS.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onStart();
//GET ALL INFORMATION FROM FIRESTORE AND SEND TO REALTIME DATABASE
if(FirebaseAuth.getInstance().getCurrentUser()!= null){
DocumentReference df = FirebaseFirestore.getInstance().collection("Users").document(FirebaseAuth.getInstance().getCurrentUser().getUid());
df.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
@Override
public void onSuccess(DocumentSnapshot documentSnapshot) {
if(documentSnapshot.getString("FullName")!= null){
String id = reff.push().getKey();
Log.d(TAG, "asdasd"+id);
SosRecords sosRecords = new SosRecords(id,documentSnapshot.getString("FullName"), (documentSnapshot.getString("PhoneNumber")), (documentSnapshot.getString("UserEmail") ));
reff.child(id).setValue(sosRecords);
btnStopSOS.setEnabled(true);
Toast.makeText(MainActivity.this, "You're are now activating SOS request !", Toast.LENGTH_SHORT).show();
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
FirebaseAuth.getInstance().signOut();
startActivity(new Intent(getApplicationContext(),Login.class));
finish();
}
});
}
if(ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.ACCESS_FINE_LOCATION)== PackageManager.PERMISSION_GRANTED){
checkSettingsAndStartLocationUpdates();
}else{
askLocationPermission();
}
}
});
btnStopSOS.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onStop();
stopLocationUpdates();
deleteRecords(RecordID);
result.setText("Dashboard");
btnStartSOS.setEnabled(true);
btnStopSOS.setEnabled(false);
}
});
}
private void deleteRecords(String fullName) {
DatabaseReference delRecord = FirebaseDatabase.getInstance().getReference("Records").child(RecordID);
delRecord.removeValue();
Toast.makeText(MainActivity.this, "The SOS Request is Stopped!", Toast.LENGTH_SHORT).show();
}
解决方案
我通过将 Id 的值设置为我的值成功地解决了它RecordID
sosrecords.setRecordID(id);
推荐阅读
- javascript - 如何更好地根据类型更改图标的箭头功能
- node.js - 如何将 node.js 应用程序托管到 firebase 托管和 paypal sdk 和颤振
- r - 按 R 中的条件值过滤
- email - 电子邮件中的 Base 64 编码图像
- r - 我将如何改变 ggplot 图例符号的形状?
- javascript - socket.io 管理员/用户的唯一颜色
- javascript - HLS.js 获取视频片段信息
- javascript - Price.map 不是函数
- concurrency - V-lang:如何每秒发送 +2500 个 HTTP 请求?
- reactjs - 如何在 React js 中使用数组将数组推送到对象中?