Javascript 如何将expo应用程序连接到google firestore?
我正在尝试验证一个用户的身份,并通过uid组织数据库中的用户,然后通过电子邮件发送数据字段。用户已成功通过身份验证,但我的firestore数据库中未显示任何内容 我的firestore安全规则处于测试模式,因此权限应该没有问题。在我的动作分派中,我成功地从firebase获取了用户的uid、访问令牌和其他一切。我相信这个错误一定是我试图连接firestore的某种方式造成的 在我的app.js文件中,我像这样初始化firebase-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
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从我的回答中可以看出,我在变量中使用了它。您想试试吗?