FirebaseErrorr:缺少权限或权限不足,尝试获取snapShot

时间:2019-09-17 04:35:06

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

我试图通过React.js和Webpack来获取snapShot,并遇到了错误Uncaught(承诺)FirebaseError:缺少权限或权限不足。 预先非常感谢。

我怀疑我的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);
};

2 个答案:

答案 0 :(得分:1)

如果错误是由于您共享的代码引起的,则似乎用户无权阅读文档users/123

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

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

答案 1 :(得分:0)

将其包装在auth函数中

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