O Função de sincronização é um dos componentes fundamentais do Sync Gateway: sua principal responsabilidade é definir qual usuário tem acesso a quais documentos. Neste screencast, você aprenderá a usar o canal público (também conhecido como canal !) para sincronizar documentos com usuários que ainda não fizeram login no seu aplicativo. Esse recurso é particularmente útil ao projetar a jornada de integração com dados dinâmicos que podem ser alterados no back-end e extraídos automaticamente quando o usuário inicia o aplicativo pela primeira vez. Consideraremos um aplicativo de anotações e exploraremos o seguinte:
- Use o canal público para inserir o Primeiros passos você pode pensar nela como a nota de tutorial quando o usuário inicia o aplicativo pela primeira vez
- Mapear a nota criada por um usuário registrado para um canal que só pode ser acessado por esse usuário
- Imponha permissões de gravação com o requireUser método
- Teste a função Sync com comandos curl
Encontre o código para esta lição
Você pode encontrar o arquivo de configuração do Sync Gateway abaixo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
{ "log": ["CRUD"], "bancos de dados": { "notas": { "servidor": "walrus:", "usuários": { "CONVIDADO": {"desativado": falso}, "william": {"senha": "pass"}, "admin": {"senha": "pass"} }, "sync": ` função sincronização(doc, oldDoc) { interruptor(doc.segurança) { caso "público": requireUser("admin"); canal("!"); quebra; padrão: requireUser(doc.nome_do_usuário); canal(doc._id); acesso(doc.nome_do_usuário, doc._id); } } ` } } } |
E os comandos curl para testar a função Sync:
- Persistir uma nota pública por meio da API de administração
123enrolar -X POST http://localhost:4985/notes/-H "Content-Type: application/json"-d '{"security": "public", "title": "Getting Started"}' - Autenticação do usuário
123enrolar -vX POST http://localhost:4984/notes/_session-H "Content-Type: application/json"-d '{"name": "william", "password": "pass"}' - Persistir uma nota de usuário
1234enrolar -X POST http://localhost:4984/notes/-H "Content-Type: application/json"-H "Cookie: SyncGatewaySession=PASTE_COOKIE_VALUE"-d '{"user_name": "william", "title": "Overview of the user journey"}'