반응형
Firestore 배열 필드에 값 추가
Firebase 클라우드 기능을 사용하여 배열 필드의 사용자 문서에 대화방 ID를 추가하려고 합니다.배열 필드 유형에 쓰는 방법을 알 수가 없습니다.여기에 클라우드 기능이 있습니다.
exports.updateMessages = functions.firestore.document('messages/{messageId}/conversation/{msgkey}').onCreate( (event) => {
console.log('function started');
const messagePayload = event.data.data();
const userA = messagePayload.userA;
const userB = messagePayload.userB;
return admin.firestore().doc(`users/${userA}/chats`).add({ event.params.messageId }).then( () => {
});
});
여기 내 데이터베이스의 모양이 있습니다.
어떤 팁이든 대단히 감사합니다, 저는 소방서에 처음입니다.
문서에서 배열에서 요소를 추가하거나 제거하는 새 작업을 추가했습니다.여기서 더 읽기: https://firebase.google.com/docs/firestore/manage-data/add-data#update_elements_in_an_array
예:
var admin = require('firebase-admin');
// ...
var washingtonRef = db.collection('cities').doc('DC');
// Atomically add a new region to the "regions" array field.
var arrUnion = washingtonRef.update({
regions: admin.firestore.FieldValue.arrayUnion('greater_virginia')
});
// Atomically remove a region from the "regions" array field.
var arrRm = washingtonRef.update({
regions: admin.firestore.FieldValue.arrayRemove('east_coast')
});
현재 Firestore에서는 배열의 개별 필드를 업데이트할 수 없습니다.그러나 배열의 전체 내용을 다음과 같이 바꿀 수 있습니다.
admin.firestore().doc(`users/${userA}/chats`).update('array', [...]);
이렇게 하면 다른 클라이언트의 일부 쓰기가 재정의될 수 있습니다.업데이트를 수행하기 전에 트랜잭션을 사용하여 문서를 잠글 수 있습니다.
admin.firestore().runTransaction(transaction => {
return transaction.get(docRef).then(snapshot => {
const largerArray = snapshot.get('array');
largerArray.push('newfield');
transaction.update(docRef, 'array', largerArray);
});
});
2021년이며 파이어베이스 파이어스토어를 여러 번 업데이트한 후 다른 데이터를 제거하지 않고 어레이에 데이터를 추가하는 새로운 방법은 다음과 같습니다.
var washingtonRef = db.collection("cities").doc("DC");
// Atomically add a new region to the "regions" array field.
washingtonRef.update({
regions: firebase.firestore.FieldValue.arrayUnion("greater_virginia")
});
// Atomically remove a region from the "regions" array field.
washingtonRef.update({
regions: firebase.firestore.FieldValue.arrayRemove("east_coast")
});
언급URL : https://stackoverflow.com/questions/48231957/firestore-add-value-to-array-field
반응형
'it-source' 카테고리의 다른 글
어떤 프로그램이 주어진 파일에 C 배열을 생성합니까? (0) | 2023.06.30 |
---|---|
소스에 X개의 요소가 있지만 대상에는 1개만 허용됩니다. (0) | 2023.06.30 |
Oracle에서 Python 호출 (0) | 2023.06.30 |
Gitrebase - 모든 병합 충돌이 해결된 경우에도 계속 불만 제기 (0) | 2023.06.30 |
sql server 그룹에서 첫 번째 행 선택 (0) | 2023.06.25 |