提问者:小点点

如何从localStorage检索信息以传递给数据库


我正在尝试从localStorage获取信息,以传递给应用程序中的数据库。我在控制台中输入“localstorage”,它会显示正确的值,所以我相信它可以在那里进行检索。然而,由于某种原因,我无法得到数据。现在,变量rfidText正在通过键盘输入设置。我想通过抓取LocalStorage中“userid”中的字符串来设置它。下面我有一个评论,我已经尝试了,但不起作用。我在file1中调用localstorage.setitem(),在file2中调用localstorage.getitem():知道为什么吗?文件1的javascript是:

/*jslint browser: true*/
/*global $, jQuery*/

$(document).ready(function () {

    "use strict";
    var scanned = false,
    scannedInput = [];

    $(window).keypress(function (scanEvent) {

        if (scanEvent.which >= 48 && scanEvent.which <= 57) {
            scannedInput.push(String.fromCharCode(scanEvent.which));
        }

        setTimeout(function () {

            if (scannedInput.length === 10) {

                var userID = scannedInput.join("");
                scanned = true;
                window.localStorage.setItem('userID', userID);
                $("#userId").val(userID);

                if (scanned) {
                    window.location.href = "../html/registration.html";
                }
            }

        scannedInput = [];

        }, 500);
    });
});

文件2的javascript是:

console.log(window.localStorage.getItem('userID')); // this prints
var rfidText = window.localStorage.getItem('userID');
console.log(rfidText);  // this doesn't print

var avatarText = "";

var config = {
    apiKey: xxx  //private info
    authDomain: xxx //private info
    databaseURL: xxx //private info
    storageBucket: xxx //private info
};

firebase.initializeApp(config);

var database = firebase.database();

function setAvatar(avatarName) {
    avatarText = avatarName;
    console.log(avatarText);
}

function writeToFirebase(idInput, languageInput, avatarInput, nameInput, 
ageGroupInput) {

    database.ref("RFID/" + idInput).set({
        id: idInput,
        language: languageInput,
        avatar: avatarInput,
        name: nameInput,
    ageGroup: ageGroupInput,
});
}

function update() {

    var rfidText = document.getElementById("rfidInput").value;

    /* instead of the line above, I want to set rfidText with this line
    var rfidText = localStorage.getItem("userID");  << doesn't work */

    var languageText = document.getElementById("languageInput").value;
    var nameText = document.getElementById("nameInput").value;
    var ageGroupText = document.getElementById("ageGroupInput").value;

    writeToFirebase(rfidText, languageText, avatarText, nameText, 
    ageGroupText);
}

共1个答案

匿名用户

可以使用localstorage.setitem(“key”,“value”);进行设置

您可以使用localstorage.getitem(“key”);获取它

您可以使用LocalStorage.RemoveItem(“key”);删除它