以下是允许用户将数据存储到Firestore中的代码。问题是,登录到该应用程序的所有用户都可以查看上传的数据。 我如何才能只允许当前登录的用户仅存储其帐户的数据?
在Firebase数据库中,我使用以下代码(有效,但不适用于Firestore)
FirebaseUser用户= FirebaseAuth.getInstance()。getCurrentUser(); 字符串userId = user.getUid(); mDatabaseRef = FirebaseDatabase.getInstance()。getReference(FB_DATABASE_PATH).child(userId);
上面的代码行仅允许已登录用户存储和检索数据。因此,数据仅对他们而言是唯一的。
如何为Firestore复制它?
cols = df.columns
for i in range(1, len(cols)):
df[cols[0]] = df.apply(lambda x: x[cols[0]].replace('#',str(x[cols[i]]),1) if x[cols[i]]!=np.NaN else x,axis=1)
print(df[cols[0]])
答案 0 :(得分:1)
如何仅使用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);
答案 1 :(得分:0)
您需要添加一个存储规则,以防止一个用户向另一个用户添加数据。只需检查firestore中的auth用户ID,并将其与文档上的用户ID进行比较即可。