db.collection (...). set не является функцией - PullRequest
2 голосов
/ 10 ноября 2019

Я пытаюсь сделать, когда кто-то входит в мой сайт, обновляет или создает статистику.

У меня есть этот код

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="https://www.gstatic.com/firebasejs/7.2.3/firebase-app.js"></script>
    <script src="https://www.gstatic.com/firebasejs/7.2.3/firebase-firestore.js"></script>
    <script src="https://www.gstatic.com/firebasejs/7.2.3/firebase-auth.js"></script>

</head>

<body>
    <script>
        var firebaseConfig = {
            apiKey: 
            authDomain: 
            databaseURL: 
            projectId: 
            storageBucket: 
            messagingSenderId: 
            appId: 
        };
        firebase.initializeApp(firebaseConfig)

        var db = firebase.firestore();

        firebase.auth().onAuthStateChanged(function (user) {
            if (user) {
                // User is signed in.
                db.collection("users").set({
                    points: 0,
                    CurrentLevel: 0
                })
            }
        });
        console.log(user.points);
    </script>
</body>

</html>

Это должно работать, но когда я пытаюсь запустить его,в консоли написано db.collection (...). set не является функцией

Что я могу сделать?

1 Ответ

3 голосов
/ 10 ноября 2019

db.collection ("users") возвращает объект CollectionReference . CollectionReference не имеет функции 'set', отсюда и ошибка. Возможно, вы ищете функцию «добавить», которая добавляет документы.

Замените

                db.collection("users").set({
                    points: 0,
                    CurrentLevel: 0
                })

на

                db.collection("users").add({
                    points: 0,
                    CurrentLevel: 0
                })

И я думаю, что это должно решить вашу проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...