无法在 Firestore 模拟器上写入
Posted
技术标签:
【中文标题】无法在 Firestore 模拟器上写入【英文标题】:Unable to write on firestore emulator 【发布时间】:2022-01-16 02:22:49 【问题描述】:我能够从 Firestore 模拟器读取数据,但无法通过客户端(这是一个 android 应用程序)向其中添加任何数据。
这是错误:
W/Firestore: (24.0.0) [Firestore]: Write failed at Users/vBLloPGsMJrXGDZdZcVO: Statuscode=PERMISSION_DENIED, description=Missing or insufficient permissions., cause=null
我在本地环境中的 firestore.rules 文件
rules_version = '2';
service cloud.firestore
match /databases/database/documents
match /document=**
allow read, write: if true;
这是用于写入firestore的代码
FirebaseFirestore.getInstance().collection("Users")
.document(userId)
.set(newUser)
.addOnCompleteListener(new OnCompleteListener<Void>()
@Override
public void onComplete(@NonNull Task<Void> task)
if (task.isSuccessful())
Log.d(TAG, "new user has been added");
else
Log.d(TAG, "Failed to add new user"+Objects.requireNonNull(task.getException()).getMessage());
);
【问题讨论】:
根据security rules,您的代码似乎没有足够的权限写入数据库。 我已经展示了我的 firestore.rules 文件 请在问题中添加您用于写入 firestore 的代码 【参考方案1】:看起来您正在尝试更新文档(与编写文档不同)。尝试在您的 Firestore 安全规则中添加“更新”,如下所示:
allow read, get, update: if true;
【讨论】:
write
= create
+ update
+ delete
,因此更新包含在 OP 规则中。见firebase.google.com/docs/firestore/security/…以上是关于无法在 Firestore 模拟器上写入的主要内容,如果未能解决你的问题,请参考以下文章
Firebase Firestore:无法访问Firestore后端(仅限Android)
将 cloud_firestore 添加到 pubspec Flutter 后无法为模拟器构建应用程序