【问题标题】:FirebaseErrorr: Missing or insufficient permissions happens, When trying to get snapShotFirebaseErrorr:尝试获取快照时发生权限丢失或不足
【发布时间】:2020-01-17 21:56:39
【问题描述】:

我尝试使用 React.js 和 Webpack 获取 snapShot,但出现错误 Uncaught (in promise) FirebaseError: Missing or enough permissions。 非常感谢您。

我怀疑我的 webpack 设置有问题,无法发出异步请求。但是,当我尝试使用相同设置的简单异步请求时,没有问题。最重要的是,获取文档也可以正常工作。我完全不知道下一步该做什么。

//App.js

componentDidMount() {
    this.unsubscribeFromAuth = auth.onAuthStateChanged(async user => {
      this.setState({ user });
      await createUserProfDoc(user);
    });
  }

//FireBase代码

export const firestore = firebase.firestore();
export const createUserProfDoc = async (userAuth, additionalData) => {
  if (!userAuth) {
    return;
  }
  const userRef = firestore.doc('users/123');
  const snapShot = await userRef.get();
  console.log(snapShot);
};

【问题讨论】:

    标签: reactjs firebase google-cloud-firestore firebase-security


    【解决方案1】:

    如果错误来自您共享的代码,则用户似乎无权阅读文档users/123

    您更有可能想要阅读用户的个人资料文档,该文件通常在其 UID 上定义/键入。在代码中:

    const userRef = firestore.collection('users').doc(user.uid);
    

    【讨论】:

    • 感谢您的评论。我犯了一个非常愚蠢的错误,我没有规则地使用firebase作为生产模式。
    【解决方案2】:

    将其包装在您的身份验证函数中:

    firebase.auth().onAuthStateChanged((user) => {
          firebase
            .firestore()
            .collection('test_data')
            .where('winner', '==', true)
            .get()
            .then((response) => {
              response.forEach((item) => {
                console.log(item.data())
              })
            })
        })
    

    【讨论】:

      猜你喜欢
      • 2021-06-20
      • 2021-01-10
      • 2021-03-10
      • 1970-01-01
      • 2022-08-06
      • 1970-01-01
      • 2020-10-01
      • 1970-01-01
      • 2019-10-24
      相关资源
      最近更新 更多