【发布时间】:2021-08-01 23:47:13
【问题描述】:
现在,我正在进行一项活动,用户必须在 EditText 中输入他们的名字、姓氏和 ID。他们输入的值会保存到 Firestore 控制台中。这是我的问题:
我打开我的应用并使用我的 google 帐户登录 google,让我们将此帐户称为我的主要帐户。我填写了 3 个 EditTexts,然后按下我命名为“btnNextStep”的保存按钮(因为它旨在将您带到表单的下一部分,但现在它是“保存”按钮)。按保存后,我可以在 Google Firestore 上看到我填写的数据。现在,如果我要在同一设备上登录另一个 Google 帐户,请将其称为我的辅助帐户,然后我会填写 EditTexts。一旦我按下保存,而不是在 Firestore 中创建新文档,它会覆盖主帐户的数据。 Firestore 的最终产品是它保存了辅助帐户中的数据,但主帐户中的数据现在已经消失了。
这是我的 .java 文件的代码,用于此活动:
package com.example.attenda_attempt3;
import androidx.annotation.NonNull;
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.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.firebase.firestore.FirebaseFirestore;
import org.jetbrains.annotations.NotNull;
import java.util.HashMap;
import java.util.Map;
public class StudentInformationFormActivity extends AppCompatActivity {
Button btnNextStep;
EditText etFirstName;
EditText etLastName;
EditText etSchoolID;
FirebaseFirestore db = FirebaseFirestore.getInstance();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_student_information_form);
btnNextStep = findViewById(R.id.btnNextStep);
etFirstName = findViewById(R.id.etFirstName);
etLastName = findViewById(R.id.etLastName);
etSchoolID = findViewById(R.id.etSchoolID);
btnNextStep.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String firstName = etFirstName.getText().toString();
String lastName = etLastName.getText().toString();
String schoolID = etSchoolID.getText().toString();
Map<String, Object> data = new HashMap<>();
data.put("First Name", firstName);
data.put("Last Name", lastName);
data.put("School ID", schoolID);
db.collection("Users").document("User Information").set(data)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void unused) {
Toast.makeText(getApplicationContext(), "Saved", Toast.LENGTH_SHORT).show();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull @NotNull Exception e) {
Toast.makeText(getApplicationContext(), "Error Occurred, Data Not Saved", Toast.LENGTH_SHORT).show();
}
});
}
});
}
}
有人可以帮我制作,这样每次用户按下“btnNextStep”时,它都会创建一个新文档并保存数据。
【问题讨论】:
标签: java android firebase google-cloud-firestore