не удается разрешить метод 'arrayUnion' - PullRequest
0 голосов
/ 04 сентября 2018

Я искал в следующей документации Google firestore и особенно в части обновления массива. они упоминают:

Обновление элементов в массиве Если ваш документ содержит поле массива, вы можете использовать arrayUnion () и arrayRemove () для добавления и удаления элементов. arrayUnion () добавляет элементы в массив, но только элементы, которых еще нет. arrayRemove () удаляет все экземпляры каждого данного элемента.

проблема в том, что Android studio не может разрешить метод arrayUnion. соответствующая часть кода:

public void onClick(View view) {
    if(isStringValid(newListName.getText().toString())){
        currListName = newListName.getText().toString().trim();
        itemList mList = new itemList(currListName , mAuth.getCurrentUser().getEmail());
        Map<String , Object> listMap = new HashMap<>();
        listMap.put(KEY_LIST_NAME , currListName);
        listMap.put(KEY_OWNER , mAuth.getCurrentUser().getEmail());
        listMap.put(KEY_HAS_ACCESS , Arrays.asList(mAuth.getCurrentUser().getEmail()));
        userRef.update("hasAccess" , FieldValue.arrayUnion(currListName));

Gradle:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0-rc02'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    implementation 'com.android.support:support-v4:28.0.0-rc02'
    implementation 'com.android.support:design:28.0.0-rc01'
    implementation 'com.google.firebase:firebase-core:16.0.3'
    implementation 'com.google.firebase:firebase-auth:16.0.3'
    implementation 'com.google.firebase:firebase-firestore:17.0.1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.google.android.gms:play-services-auth:16.0.0'
}

их код:

DocumentReference washingtonRef = db.collection("cities").document("DC");
washingtonRef.update("regions", FieldValue.arrayUnion("greater_virginia"));

1 Ответ

0 голосов
/ 04 сентября 2018

Согласно примечаниям к выпуску, операции с массивами поддерживаются начиная с версии SDK клиента 17.0.5. Вот ссылка на примечания к выпуску.

В любом случае обновите свой клиентский SDK, чтобы использовать последние API Firestore.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...