javascriptnode.jsmeteormeteor-accountsmeteor-collection2

meteor make user's schema collection2 to login


I'd like use this schema as user and login or extend form users.I read documentation and I don't understand how extends from users. how I can make it?

Dipendenti = new Mongo.Collection('dipendenti'); DipendentiSchema = new SimpleSchema({ nome: { type: String }, cognome:{ type: String }, codiceFiscale:{ type: String }, telefono:{ type: String }, indirizzo:{ type: String } });


Solution

  • I believe you are trying to extend/merge the schema listed above to the users collection. If so, you just need to attach the schema to the collection.

    Meteor.users.attachSchema(DipendentiSchema);
    

    UPDATE:

    To use this new merged schema, you should be able to do something like:

    Accounts.createUser({
      username: 'test',
      email: 'test@example.com',
      password: 'password',
      nome: 'Richard',
      cognome: 'Ortiz',
      codiceFiscale: 'EUR',
      telefono: '+39 06 49911',
      indirizzo: 'Piazzale Aldo Moro, 5, 00185 Roma, Italy'
    });
    

    If you want to make email address optional in your schema, you can add the following to it.

    emails: {
        optional: true,
        type: [Object]
    },
    "emails.$.address": {
        optional: true,
        type: String
    },
    "emails.$.verified": {
        optional: true,
        type: Boolean
    }
    

    UPDATE 2:

    Ensure that you are defining and attaching the schema wherever you are trying to make changes to the users collection. It is generally considered a best practice to do your database changes only on the server for security. You could write a method on the server using Meteor.methods({}); and then call it on the client with Meteor.call({}); and pass it your user data. You can read more about this approach the Meteor documentation.