user10198341:
以下、ユーザがFirestoreにデータを格納するためのコードです。問題は、アップロードされたデータは、ユーザーがアプリにログインしているすべてのために閲覧可能となっています。どのように私は、現在のユーザーのみが自分のアカウントのデータを保存するには、ログインのみを許可することができるだろうか?
Firebaseデータベースと私は(作品ではなく、Firestore用)次のコードを使用します
FirebaseUserユーザー= FirebaseAuth.getInstance()GETCURRENTUSER()。ストリングのuserId = user.getUid()。mDatabaseRef = FirebaseDatabase.getInstance()getReference(FB_DATABASE_PATH).child(USERID)。
上記のコード行は、データが記憶され、ログインユーザのみのために取得されることを可能にします。だから、データはそれらのみに固有のものです。
どのように私はFirestoreのためにそれを複製することができますか?
fetch=findViewById(R.id.fetchDocument);
firestore = FirebaseFirestore.getInstance();
upload =findViewById(R.id.uploadText);
upload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
POJO pojo = new POJO();
pojo.setValue("Hello World");
//below code creates collection, creates a inner doc. and uploads the value (pojo)
firestore.collection("RootCollection").document("MyDoc")
.set(pojo).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
//gets called if upload is successful
Toast.makeText(ichild.this,"Upload is successful", Toast.LENGTH_SHORT).show();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(ichild.this,"Upload is not successful" + e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
});
fetch.setOnClickListener(new View.OnClickListener() {
アレックス・マモ:
唯一の現在のデータはFirestoreを使用してログインしているユーザー保存する方法
あなたは合格している場合は、同じことを達成することができますuid
するdocument()
方法。Firebaseリアルタイムデータベースで使用される次のコード行ので:
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String userId = user.getUid();
mDatabaseRef = FirebaseDatabase.getInstance().getReference(FB_DATABASE_PATH).child(userId);
Firestoreにと同等です:
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
DocumentReference uidRef = rootRef.collection("users").document(uid);
POJO pojo = new POJO();
uidRef.set(pojo);