Javascript 如何将expo应用程序连接到google firestore?

Javascript 如何将expo应用程序连接到google firestore?,javascript,firebase,react-native,google-cloud-firestore,expo,Javascript,Firebase,React Native,Google Cloud Firestore,Expo,我正在尝试验证一个用户的身份,并通过uid组织数据库中的用户,然后通过电子邮件发送数据字段。用户已成功通过身份验证,但我的firestore数据库中未显示任何内容 我的firestore安全规则处于测试模式,因此权限应该没有问题。在我的动作分派中,我成功地从firebase获取了用户的uid、访问令牌和其他一切。我相信这个错误一定是我试图连接firestore的某种方式造成的 在我的app.js文件中,我像这样初始化firebase- import firebase from 'firebase

我正在尝试验证一个用户的身份,并通过uid组织数据库中的用户,然后通过电子邮件发送数据字段。用户已成功通过身份验证,但我的firestore数据库中未显示任何内容

我的firestore安全规则处于测试模式,因此权限应该没有问题。在我的动作分派中,我成功地从firebase获取了用户的uid、访问令牌和其他一切。我相信这个错误一定是我试图连接firestore的某种方式造成的

在我的app.js文件中,我像这样初始化firebase-

import firebase from 'firebase';
import '@firebase/firestore';

componentDidMount() {
    const firebaseConfig = {
      apiKey: 'xxxxxxxx',
      authDomain: 'xxxxxxxxx.firebaseapp.com',
      databaseURL: 'xxxxxxxx.firebaseio.com',
      projectId: 'xxxxxxxx',
      storageBucket: 'xxxxxxx.appspot.com',
      messagingSenderId: 'xxxxxxxxxxx',
      appId: 'xxxxxxxxxxxxxxxxxxxx'
    };
    firebase.initializeApp(firebaseConfig);
  }
然后,这就是我试图调用将用户放入数据库的方式-

firebase.auth().createUserWithEmailAndPassword(email, password)
   .then((user) =>
     dispatch({ type: USER_LOGIN_SUCCESS, payload: user });
     const dbRoot = firebase.firestore();
     dbRoot.collection('users').doc(user.user.uid).set({ email });
   });
同样在该文件的顶部,我导入如下内容

import firebase from 'firebase';
import '@firebase/firestore';
同样,这些用户正在成功进行身份验证,但他们没有出现在firestore数据库中。

您必须向数据库添加集合并添加数据


const dbRoot=firebase.firestore.collection'users'; ... 添加数据{ dbRoot.add{ 用户:user.user.uid, 电邮:电邮,, 完全正确, }; 或


const dbRoot=firebase.firestore.collection'users'; ... const defaultDoc={ 电邮:电邮 }; 异步添加数据{ 等待dbRoot.docuser.user.uid.setdefaultDoc; }
你在Firebase的身份验证部分看到它们了吗?是的,添加了电子邮件帐户。dbRoot.collection'users'.docuser.user.uid.set{email};在问题中,填充相同的角色,但使用用户的UID作为文档ID。后者更为惯用,因为它可以防止自动存储相同的UID两次,并使通过用户的UID更容易找到用户。@FrankvanPuffelen我明白了。我还将提问者的方法添加到了答案中。@FrankvanPuffelen您建议不要使用吗用户UID作为文档ID?我计划以这种方式组织它,并通过subcollectionsconst dbRoot=firebase.firestore.collection'users';dbRoot.docuser.user.UID.set{email}存储所有用户信息;我将其更改为此,但仍然遇到相同的问题。我是否需要像您那样使用回调函数?@goolius_boozler从我的回答中可以看出,我在变量中使用了它。您想试试吗?