簡體   English   中英

修改數組中單個元素的值 - firestore

[英]Modify the value of a single element in an array - firestore

我對數據結構進行了以下設置:

users
|-name
|-id

businesses
|-name
|-id
|-owners
||[0]
||-name
||-id
||[1]
||-name
||-id

reviews
|-id
|-description
|-authorId
|-authorName

根據視頻和博客文章,我知道我可以使用 2018 年的新數組功能刪除元素和添加元素。有沒有辦法將特定引用傳遞給 update 方法以更新特定值,例如 owner[1] 。姓名?

觀看有關多路徑更新的視頻,閱讀 arrays 上的博客文章,四處搜索進行多路徑更新的示例,嘗試在 StackOverflow 上閱讀有關更新 arrays 的不同方法。

    db.collection("businesses").whereArrayContains("owners",userId).get()
            .addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
                @Override
                public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
                    for (QueryDocumentSnapshot documentSnapshot : queryDocumentSnapshots) {
                        DocumentReference ref =db.collection("businesses").document(documentSnapshot.getId());
                        batch.update(ref, "Name", editText.getText().toString().trim());
                    }

不可以,本機數組操作只能對列表類型字段中的整個項目進行操作。 您不能在數組中調出對象的特定屬性。 如果要修改列表中對象的屬性,則必須閱讀文檔,在代碼中修改列表,然后將整個字段更新回文檔。 您將無法通過單個操作執行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM