#javascript #firebase #firebase-realtime-database #google-cloud-firestore #firebase-authentication
#javascript #firebase #firebase-база данных в реальном времени #google-облако-firestore #firebase-аутентификация
Вопрос:
привет, я пытаюсь написать в firestore после регистрации пользователя, он не отображается в списках firestore, где я ошибаюсь?
возникающая ошибка
`»Ошибка FirebaseError: функция CollectionReference.doc () требует, чтобы его первый аргумент имел тип непустой строки, но это было: undefined «. Я застрял на этом в течение нескольких дней, так как я новичок в firebase.
Спасибо! 🙂
export default class Register extends React.Component {
static navigationOptions = {
headerShown: false
};
state = {
name:"",
email: "",
password: "",
errorMessage: null
};
handleSignUp = () => {
try {
firebase.auth().createUserWithEmailAndPassword(this.state.email, this.state.password)
.then(function(user){
const user2 = firebase.auth().currentUser;
const currentUser = user.uid
const db = firebase.firestore();
db.collection('users')
.doc(user.id)
.set({
email: user2.email,
name: this.state.name
})
});
} catch (err) {
Alert.alert('There is something wrong!', err.message);
}
}
Комментарии:
1. В сообщении об ошибке совершенно явно говорится, что user.id является неопределенным. Вы можете заметить, что в СВОЕМ СОБСТВЕННОМ КОДЕ вы ранее использовали user.uid
Ответ №1:
Сообщение об ошибке совершенно недвусмысленно сообщает вам, что user.id является неопределенным. Вы можете заметить в СВОЕМ СОБСТВЕННОМ КОДЕ, что ранее использовали user.uid
Так что то, что вы, вероятно, ищете, это:
handleSignUp = () => {
try {
firebase.auth().createUserWithEmailAndPassword(this.state.email, this.state.password)
.then(function(user){
const user2 = firebase.auth().currentUser;
const currentUser = user.uid
const db = firebase.firestore();
db.collection('users')
.doc(currentUser)
.set({
email: user2.email,
name: this.state.name
})
});
} catch (err) {
Alert.alert('There is something wrong!', err.message);
}
}
Комментарии:
1. я благодарю вас! Я действительно только что это понял! моя проблема заключается в пользовательском вводе текста, который this.state.name когда пользователь входит в систему, как мне записать это в коллекцию firebase? Большое спасибо за вашу помощь!
2. Сейчас, сейчас — это не способ StackOverflow! Этикет StackOverflow заключается в том, что вы пытаетесь самостоятельно, находите конкретную проблему , а затем задаете ДРУГОЙ вопрос с этой конкретной проблемой — таким образом, ДРУГИЕ люди с аналогичной проблемой могут найти вопрос и, надеюсь, ответ!