gpt4 book ai didi

java - 如何使用Firestore仅存储当前登录用户的数据

转载 作者:行者123 更新时间:2023-12-01 18:57:35 24 4
gpt4 key购买 nike

下面是允许用户将数据存储到 Firestore 中的代码。问题是,所有登录该应用程序的用户都可以查看上传的数据。我如何才能只允许当前登录的用户存储其帐户的数据?

对于 Firebase 数据库,我使用以下代码(有效,但不适用于 Firestore)

FirebaseUser 用户= FirebaseAuth.getInstance().getCurrentUser(); String 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() {

最佳答案

How to only store data for current logged in user using 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);

关于java - 如何使用Firestore仅存储当前登录用户的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59663369/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com