Last active
July 8, 2022 16:11
-
-
Save faustoct1/74100e292940392da746cd8e157bd0db to your computer and use it in GitHub Desktop.
Executar triggers do firebase após insert, update e delete
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* | |
| As vezes queremos executar uma ação após um insert, update e delete no firestore. | |
| Por exemplo após inserir um registro ou documento querer indexar no algolia, | |
| elasticsearch para consultas full text search, ou querer executar algum job/work | |
| para uma ação específica. | |
| As triggers onCreate, onWrite, onUpdate, onDelete possibilita vc executar qq ação | |
| após a execução de create, write, update ou delete no firestore. | |
| No exemplo abaixo sempre que algum post for adicionado as funções serão chamadas | |
| automaticamente. | |
| Adicione as linhas abaixo ao seu functions/index.js. | |
| Faça deploy para refletir as alterações: | |
| firebase deploy --only functions | |
| */ | |
| exports.onCreate = functions.firestore.document('posts/{id}').onCreate(async (snap, context) => { | |
| const {id} = context.params | |
| const data = snap.data() | |
| console.log('id',id) | |
| console.log('data',data) | |
| return {} | |
| }) | |
| exports.onDelete = functions.firestore.document('posts/{id}').onDelete(async (snap, context) => { | |
| const {id} = context.params | |
| const data = snap.data() | |
| console.log('id',id) | |
| console.log('data',data) | |
| return {} | |
| }); | |
| exports.onUpdate = functions.firestore.document('posts/{id}').onUpdate(async (change, context) => { | |
| // Obter novos valores | |
| const newData = change.after.data() | |
| // Obter valores antigos | |
| const previousData = change.before.data() | |
| // Acessar os campos com os valores antigos | |
| console.log('previousData', newData) | |
| // Acessar os campos com os novos valores | |
| console.log('newData', newData) | |
| console.log('params',context.params) | |
| }); | |
| exports.onDelete = functions.firestore.document('posts/{id}').onDelete(async (snap, context) => { | |
| // Obtém o objeto deletado | |
| const deletedValue = snap.data() | |
| console.log('deletedValue',deletedValue) | |
| console.log('params',context.params) | |
| }); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment