首页 > 解决方案 > 如何在firebase中将uid作为参数传递?反应+火力基地

问题描述

授权响应我正在使用 react 并已使用 firebase auth 登录用户并存储 uid 应用程序上下文。

Security rules:
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
        allow read;
        allow write: if
          request.auth!=null;
    }
  }
}

我想保留这个安全规则。我想用uid提出请求。我怎么做?这种方式会出错。

await db.collection('users').doc(uuid).set({name:name});

未捕获(承诺) FirebaseError:缺少或不足的权限。

如何在写入数据库时​​将 uid 作为参数传递给每个请求?

标签: reactjsfirebasegoogle-cloud-firestore

解决方案


目前尚不清楚您现在如何初始化uuid,但应该是:

firebase.auth().onAuthStateChanged((user) => {
  if (user) {
    var uuid = user.uid;
    await db.collection('users').doc(uuid).set({name:name});
  } else {
    // User is signed out
    // ...
  }
});

此代码段直接来自 Firebase 文档中有关获取当前用户的信息。


推荐阅读