2014-04-22 7 views
5

Dokumentacja dla Google Cloud MBS stwierdza, że ​​dostęp do przechowywanych encji może być kontrolowany poprzez prefiksowanie nazwy KindName tego obiektu za pomocą ciągów "[public]" lub "[private] " (lub nic).Zakres dostępu z użyciem nazwy Kodu w Google Cloud/Android Mobile Backend Rozrusznik

https://cloud.google.com/developers/articles/mobile-backend-starter-api-reference#acfce

Jednakże próby włożenia CloudEntities do magazynu danych za pomocą KindNames które zaczynają [publiczną] lub [prywatny] spowoduje wyjątek/błąd, w szczególności, że KindName jest nieprawidłowy.

Jest to przypadek zarówno dla backend systemem otwartym i w trybie zabezpieczone (za pomocą danych logowania Google, aby czerpać z boiska _owner)

np tutaj używam KindName "[public] TestDB", który zawiedzie, natomiast "TestDB" nie wyrzucił żadnego wyjątku.

04-22 19: 57: 54,132: E/Android Runtime (4690) Sposób: com.example.package PID: 4690

04-22 19: 57: 54,132: E/Android Runtime (4690): java.lang.IllegalArgumentException: Nielegalna nazwa rodzaju: [publiczny] TestDB

04-22 19: 57: 54.132: E/AndroidRuntime (4690): na com.google.cloud.backend.core.CloudEntity. (CloudEntity.java:86)

04-22 19: 57: 54,132: E/Android Runtime (4690) w com.example.package.CloudUtil.convertUpdatesToCEList (CloudUtil.java:252)

22/04 19: 57: 54,132: E/Android Runtime (4690) w com.example.package.CloudUtil.checkSync (CloudUtil.java:199)

odpowiedniej części kodu editted/skompresowany za zwięzłość jest:

CloudBackendMessaging cbm=_cloudfrag.getCloudBackend(); 

    List<CloudEntity> entries=new ArrayList<CloudEntity>(); 

    while (...) { 
     CloudEntity ce=new CloudEntity(_CLOUD_DB_KIND); 
     ce.put("fieldname", devID); 
     entries.add(ce); 
    } 


      _countActivity.runOnUiThread(new Runnable() { 
       @Override 
       public void run() { 
         cbm.updateAll(entries, handler); 
       } 
      }); 

Gdzie obsługi jest zwrotna i _cloudfrag jest CloudBackendFragment z przykładowego kodu.

Ten sam efekt uzyskuje się przy użyciu zarówno wstawek, jak i aktualizacji, dla pojedynczego lub wielokrotnego, tj. List podmiotów na raz.

Mogę tylko myśleć, że nie rozumiem dokumentacji - ale wydaje się dość jednoznaczne, że KindNames może zaczynać się od [public] [private] etc?

Odpowiedz

1

Sądząc po raportach o błędach na github od innych osób, które mają ten sam problem, jest to błąd w bibliotece MBS Google.

Niestety odpowiedź na to była cisza przez kilka miesięcy aż do dzisiaj deweloperów pisał jeden popełnić aktualizacji pliku readme do wskazania tej biblioteki nie jest już obsługiwany i nie jest oficjalnym produktem Google (mimo to pchanych jako zestaw startowy przy każdym projekcie chmury uruchamianym z konsoli!).

https://github.com/GoogleCloudPlatform/solutions-mobile-backend-starter-android-client/pull/16

Patrząc na źródło Myślę, że ta cecha modyfikator dostępu nigdy nie został faktycznie realizowane mimo dokumentacji przeciwnego.

Powiązane problemy