在 Firestore 文档中添加地理编码属性

问题描述 投票:0回答:1

我有这个代码

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp();

const firestore = admin.firestore();


exports.processGzipCSVMonthly = functions.runWith({ timeoutSeconds: 540 }).https.onRequest(async (req, res) => {
    try {
      
        //...
        //data is content of a CSV file
        //...
        
        const collectionRef = firestore.collection('Adresses');
        let batch = firestore.batch();
    
        data.forEach((entry) => {
            const codeInsee = entry['code_insee'];
            const nomVoie = entry['nom_voie'];
            const numero = entry['numero'];
            const lon = parseFloat(entry['lon']); 
            const lat = parseFloat(entry['lat']); 
    
            // Génération d'un ID de document aléatoire
            const docId = firestore.collection('Temp').doc().id;
    
            // Créer un objet GeoPoint avec les valeurs de lat et lon
            const geoPoint = new admin.firestore.GeoPoint(lat, lon);
    
            // Enregistrement du de la rue et de ses adresse dans le document sous la collection Adresses
            batch.set(collectionRef.doc(docId), { numero, geoPoint, codeInsee, nom_voie: nomVoie });
        });

        await batch.commit();

        res.status(200).send('Traitement terminé avec succès.');
    } catch (error) {
        console.error('Erreur lors du traitement du fichier :', error);
        res.status(500).send('Une erreur est survenue lors du traitement.');
    }
});

执行时,使用经度和纬度值创建 geoPoint 变量时出现错误

 const geoPoint = new admin.firestore.GeoPoint(lat, lon);

错误表明 Geopoint 不是构造函数。

TypeError:admin.firestore.GeoPoint 不是构造函数

我使用 SDK 12.0(最新)。所有医生都说这个方法没问题。我觉得有一点我没看到...

你知道为什么吗?你能帮助我吗?

javascript google-cloud-firestore firebase-admin
1个回答
0
投票

找到了,Geopoint 是 google-cloud 的一部分

const gcloud = require('@google-cloud/firestore');
const geoPoint = new gcloud.GeoPoint(lat, lon);

感谢您的帮助

© www.soinside.com 2019 - 2024. All rights reserved.