Javascript firebase firestore是否更改了退货承诺?
从今天起2020年10月26日,我通过数据库调用来收集其他数据。 这对我来说是一个巨大的改变,我必须改变我的全部代码,这是几天的工作。 用户名变量在今天之前一直有效 当删除用户名时,我的代码工作,然后我进入其他页面 代码又被破解了 错误 未捕获(承诺中)TypeError:无法读取未定义的属性“$t” 我的代码Javascript firebase firestore是否更改了退货承诺?,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,从今天起2020年10月26日,我通过数据库调用来收集其他数据。 这对我来说是一个巨大的改变,我必须改变我的全部代码,这是几天的工作。 用户名变量在今天之前一直有效 当删除用户名时,我的代码工作,然后我进入其他页面 代码又被破解了 错误 未捕获(承诺中)TypeError:无法读取未定义的属性“$t” 我的代码 handleLogin = async () => { await fire .auth() .signInWithEmailAndPas
handleLogin = async () => {
await fire
.auth()
.signInWithEmailAndPassword(this.state.userName, this.state.password)
.then((u) => {
console.log(u)
this.props.toggleLogin();
db.collection('users')
.where('userId', '==', u.user.uid)
.get()
.then((res) => {
console.log(res)
let result = res.docs;
console.log(result)
let userName =
result[0]._E.$t.proto.mapValue.fields.userName.stringValue;
this.props.setUser(u.user.uid, userName);
sessionStorage.setItem('userId', u.user.uid);
});
this.props.history.push('/portfolio');
})
.catch((err) => {
console.log(err);
if (this.state.email === '') {
this.dialog.showAlert('Please enter a valid email');
} else if (this.state.password === '') {
this.dialog.showAlert('Please enter a valid password');
}
});
};
看起来您正试图依赖Firestore SDK的未记录、缩小的内部实现,但这根本不能保证工作正常 我想你想要的是:
let result = res.docs;
let userName = result[0].get('userName');
看起来您正试图依赖Firestore SDK的未记录、缩小的内部实现,但这根本不能保证工作正常 我想你想要的是:
let result = res.docs;
let userName = result[0].get('userName');
因此,使用结果[0]不是一种好的做法?最好使用结果[0]。获取('userName')?正确,我们只保证客户的行为。坚持参考文档中出现的东西,你就会保持良好状态。谢谢你的帮助,我还有一个问题。因此get()总是会给出与结果[0]相同的结果。\u E.$t.proto.mapValue.fields.userName.stringValue。在本例中,将使用usernames,因为使用结果[0]是不好的做法。_E.$t.proto.mapValue.fields.userName.stringValue?最好使用结果[0]。获取('userName')?正确,我们只保证客户的行为。坚持参考文档中出现的东西,你就会保持良好状态。谢谢你的帮助,我还有一个问题。因此get()总是会给出与结果[0]相同的结果。\u E.$t.proto.mapValue.fields.userName.stringValue。在这个例子中,它将是userName@AlexanderStaroselsky我有多个用户的多个文档。医生说的很糟糕change@AlexanderStaroselsky我有多个用户的多个文档。而docId是一种改变