【发布时间】:2019-12-11 07:23:19
【问题描述】:
我有一个链接到 Firebase 的应用。当用户登录时,我将他的对象firebase.auth().currentUser 分配给一个变量。然后,我向该变量添加一个属性 (username)。问题是当我console.log(currentUser) 时,我得到了带有添加属性的对象。但是,当我尝试 JSON.stringify 它然后 JSON.parse 它再次(我这样做是为了将其存储在 localStorage 上)我找不到我添加的属性 username。这里发生了什么事 ?
var currentUser = firebase.auth().currentUser
currentUser.username = 'Foo';
console.log(currentUser) // => i get my prop username here
console.log(JSON.parse(JSON.stringify(currentUser))) // => i cant find my added prop here
【问题讨论】:
-
这是什么结果:
console.log(localStorage.getItem('currentUser')) -
控制台中的对象是实时的(不是快照),并且会在记录后显示对它们所做的修改。尝试
console.log(JSON.stringify(currentUser))可能会看到它是空对象,并且您遇到了同步问题 -
@AbderrahimSoubaiElidrissi 显然是 JSON 格式的相同对象
-
请附上最少的复制品,以便我们提供可靠的建议。请参阅how to ask 和creating an mcve,了解有关提出有效问题和获得超级明星答案的一些重要提示。由于您正在获取 Firebase 管理的对象并对其进行修改,因此它可能会覆盖您的更改。将您需要的数据复制到您自己的对象中。还有,有什么意义?为什么要将 Firebase 提供的临时/可变数据存储在 localStorage 中?提示:它已经存储在那里。也许只是单独存储用户名?
-
@charlietfl true ,我该如何解决?
标签: javascript firebase firebase-authentication