Skip to content
This repository was archived by the owner on May 19, 2025. It is now read-only.

Adapting firestore-mixin for lit-element #355

@kr05

Description

@kr05

Description

I'm currently trying to integrate firestore-mixin into my project, and I've come across a couple of errors. For example, when the mixin tries to call this.splice it throws. I fixed that particular error by replacing this.splice with Arrray.splice, and it seems have worked...although I can't say if that's the best solution. The most recent error I've encountered is one I can't figure out how to fix, so I'm hoping I can get some suggestions here. The mixin throws when it tries to call this._createMethodObserver. Here's the relevant code, including the document I'm trying to access. I also attached a screenshot of the error.

//my-element.js
static get properties() {
    return {
        pid: String,
        patient: {
            type: Object,
            doc: 'patients/{pid}',
            live: true
        }
    }
}
//end my-element.js

//firestore-mixin.js
_firestoreBind(name, options) {
    const defaults = {
        live: false,
        observes: [],
    }
    const parsedPath = parsePath(options.doc || options.collection);
    const config = Object.assign({}, defaults, options, parsedPath);
    const type = config.type =
        config.doc ? 'doc' : config.collection ? 'collection' : undefined;
    this._firestoreProps[name] = config;
    const args = config.props.concat(config.observes);

    console.log('args:', args)

    // What can this be replaced with?
    // ----------------------------------------------------------------------
    if (args.length > 0) {
        // Create a method observer that will be called every time
        // a templatized or observed property changes
        const observer =
            `_firestoreUpdateBinding('${name}', ${args.join(',')})`
        this._createMethodObserver(observer);
    }
    // ----------------------------------------------------------------------

    this._firestoreUpdateBinding(name, ...args.map(x => this[x]));
}
//end firestore-mixin.js

image

I tried simply removing the call, but the patient property remains undefined. Any suggestions would be greatly appreciated!

Browsers Affected

  • Chrome

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions