【发布时间】:2021-09-11 01:11:27
【问题描述】:
我正在尝试将一个对象推送到一个数组中,该数组保存给“用户”集合中的用户。我不断收到错误消息:未捕获的 ReferenceError: user is not defined on this line db.collection('users').doc(user.uid).get().then(doc => {
代码
// Your web app's Firebase configuration
var firebaseConfig = {
apiKey: "####",
authDomain: "###.firebaseapp.com",
projectId: "#",
storageBucket: "#.appspot.com",
messagingSenderId: "#",
appId: "1:####"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
const auth = firebase.auth()
const db = firebase.firestore()
db.settings({ timestampsInSnapshots: true })
</script>
<script>
function savetodb() {
db.collection('users').doc(user.uid).get().then(doc => {
const saveditems1 = doc.data().saveditems
const ob = {
Name:'Test',
Price:'Test',
Link:'https://www.test.com'
}
saveditems1.push(ob)
});
用户已登录,所以我不确定为什么会收到此错误。
【问题讨论】:
-
我的意思是......你的(显示的)代码中没有任何地方是
user定义 -
虽然用户可能已“登录”,但这并未在环境中定义“用户”,因此,您必须从 Firebase Auth 请求用户以获取当前登录的用户。你没有这样做。此外,否决答案实际上会对我们产生负面影响,因为这是我们回答问题的工作。
-
还应该提到用户身份验证是一个异步过程,您应该通过注册
onAuthStateChanged()监听器等待它发生变化
标签: javascript html database firebase collections