java - 如何将您正在创建的 Android 项目的 ID 写入 Firebase 数据库
问题描述
我使用实时数据库。爪哇。问题是我无法获取创建的 ID。我有一个创建订单的用户:
创建的订单被输入数据库
它包括信息、发件人的 ID,并且还必须在屏幕截图中显示自己的 ID,这是我遇到的问题。
下面的订单创建代码
private EditText mDateField, mModelField, mProblemField, mAdressField;
private Button mConfirm;
private FirebaseUser fuser;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_order);
mDateField = findViewById(R.id.date);
mModelField = findViewById(R.id.model);
mProblemField= findViewById(R.id.problem_desc);
mAdressField = findViewById(R.id.adress);
mConfirm = findViewById(R.id.confirm);
fuser = FirebaseAuth.getInstance().getCurrentUser();
final String userID = fuser.getUid();
final String orderid = "";
mConfirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String date = mDateField.getText().toString();
String model = mModelField.getText().toString();
String adress = mAdressField.getText().toString();
String problem = mProblemField.getText().toString();
saveOrderInformation(orderid,userID,date,model,adress,problem);
finish();
AppUtilities.showToast(OrderActivity.this,"Order");
}
});
}
private void saveOrderInformation(String id, String sender, String date, String model, String adress, String problem){
DatabaseReference reference = FirebaseDatabase.getInstance().getReference();
HashMap<String,Object> hashMap = new HashMap<>();
hashMap.put("id",id);
hashMap.put("sender",sender);
hashMap.put("date",date);
hashMap.put("model",model);
hashMap.put("adress",adress);
hashMap.put("problem",problem);
reference.child("Orders").push().setValue(hashMap);
}
}
解决方案
如果您希望push()
也是属性的值id
,那么您可以尝试以下操作:
private void saveOrderInformation(String id, String sender, String date, String model, String adress, String problem){
DatabaseReference reference = FirebaseDatabase.getInstance().getReference();
String key = reference.child("Orders").push().getKey();
HashMap<String,Object> hashMap = new HashMap<>();
hashMap.put("id",key);
hashMap.put("sender",sender);
hashMap.put("date",date);
hashMap.put("model",model);
hashMap.put("adress",adress);
hashMap.put("problem",problem);
reference.child("Orders").child(key).setValue(hashMap);
}
您可以push()
使用获取值getKey()
,然后可以将其分配给id
并在设置值时将其用作参考。
推荐阅读
- google-sheets - 返回所有 DEC YYYY 和结果的 Google 表格公式?
- javascript - 是否有可能将 async/await 与 map 一起使用,
- google-cloud-platform - 如何检查是否为 GCP 中每个密钥环中的每个密钥启用了密钥轮换?
- airflow - 使用微风无法使用气流2.0.0 构建 docker 映像
- pyspark - 使用 PySpark 读取带有多行字符串且不带引号的平面文件
- google-sheets - 使用 Google 表格上的 URL 选项卡的 ImportXML / ImportHTML 解决方法
- php - 我想显示较大的数字变量,但它没有在页面中显示任何内容
- google-sheets - 使用查询不工作触发 IMPORTRANGE
- python - 如何使用 pydroid3 在 jnius 中授予 android 权限
- qtmultimedia - 如何在 Python 的 QtMultimedia/QSound 中设置音量?