无法以本机方式从 Firebase Firestore 获取数据

Unable to fetch data from Firebase Firestore in react native

我正在尝试从 Firestore 获取数据,但我看不到数据。我正在构建一个本机反应应用程序。我正在使用 react-native-firebase。

我还尝试了 react-native-firebase 文档中的 Transactions 方法。但是没有任何效果。

这是我的代码:

firebase.firestore().collection('users').doc(uid)
          .get()
          .then((doc)=>{ 
                  console.log(doc)
                  console.log(doc.data().shoppinglist)   
          })
          .catch(e => console.log(e));

控制台日志记录 .get() 给了我一个承诺。

我得到这样的承诺:

Promise {_40: 0, _65: 0, _55: null, _72: null}
_40: 0
_55: null
_65: 0
_72: null

但是 .then() 不会执行,因为两个 console.log() 没有记录任何内容。

请帮帮我。 Firebase 很新。

在 Firebase 文档中 digging 之后,我找到了解决方案。

Collection references and document references are two distinct types of references and let you perform different operations. For example, you could use a collection reference for querying the documents in the collection, and you could use a document reference to read or write an individual document.

因此,将 firebase.firestore().collection('users').doc(uid) 替换为 firebase.firestore().doc(`users/${uid}`) 解决了我的问题。

对于像我这样的firebase傻瓜,如果你想要一个自定义文档id,你必须在写入数据到firestore时指定它

import firestore from '@react-native-firebase/firestore';

firestore()
  .collection('Users')
  .doc('ABC')
  .set({
    name: 'Ada Lovelace',
    age: 30,
  })
  .then(() => {
    console.log('User added!');
  });

那你就可以通过

import firestore from '@react-native-firebase/firestore';

const user = await firestore().collection('Users').doc('ABC').get();

供参考:https://rnfirebase.io/firestore/usage#writing-data