sql >> Database >  >> NoSQL >> MongoDB

Verbinding maken met MongoDB Atlas vanuit firebase-functies

Er zijn enkele kanttekeningen bij het verbinden met Atlas vanuit Firebase Function. Hieronder vindt u de juiste manier om een ​​verbonden client-instantie terug te sturen voor verder gebruik in uw FB-functie:

import { MongoClient } from 'mongodb'

const uri = 'mongodb://<USER>:<PASSWORD>@foo-shard-00-00-xxx.gcp.mongodb.net:27017,foo-shard-00-01-xxx.gcp.mongodb.net:27017,foo-shard-00-02-xxx.gcp.mongodb.net:27017/test?ssl=true&replicaSet=FOO-shard-0&authSource=admin&retryWrites=true'

let client

export default async () => {

    if (client && client.isConnected()) {
        console.log('DB CLIENT ALREADY CONNECTED')

    } else try {
        client = await MongoClient.connect(uri, { useNewUrlParser: true })
        console.log('DB CLIENT RECONNECTED')
    }

    catch (e) {
    throw e
    }

    return client
}

Uitleg:

  1. naar verluidt kunt u geen verbinding maken met Atlas als u zich op een Spark bevindt plan. Zorg ervoor dat je upgradet naar Blaze als je dat nog niet hebt gedaan.

  2. uri string - Gebruik de verkorte url-indeling niet wanneer u verbinding maakt met Atlas vanuit Firebase. Om de een of andere reden werkt alleen het oudere, lange url-formaat betrouwbaar vanuit firebase.

  3. client variabele – U moet de client . definiëren variabele buiten het exportbereik en wijs vervolgens de verbonden clientinstantie eraan toe binnen de functie, alleen als deze nog niet is toegewezen. Dit voorkomt dat de client opnieuw wordt verbonden bij elke functieaanroep. Firebase-functies zijn staatloos , maar niet helemaal. ze worden pas uitgeschakeld na een bepaalde periode van inactiviteit. Dit betekent dat de verbinding enige tijd zal blijven bestaan. Van documenten :Als u een variabele in globale scope declareert, kan de waarde ervan opnieuw worden gebruikt in volgende aanroepen zonder dat deze opnieuw hoeft te worden berekend.



  1. Update in forEach op mongodb shell

  2. Multi-tenancy in Reactive Spring-opstarttoepassing met mongodb-reactive

  3. Hoe de resultaten in mongodb te sorteren en te beperken?

  4. Hoe gebruikers en authenticatie in MongoDB te beheren