AGC CloudDB升級版本后初始化失敗問題解決方案

來源: 華為開發(fā)者論壇
作者:Mayism
時間:2021-04-02
17194
前期App內使用了華為AppGallery Connect的CloudDB服務,用來存儲應用內的數據關系。最近看CloudDB的Android SDK發(fā)布了新版本,我們就計劃對Android應用的版本同步做了升級,但是升級SDK版本,調測的時候,出現(xiàn)創(chuàng)建對象類型的錯誤。

問題背景

前期App內使用了華為AppGallery Connect的CloudDB服務,用來存儲應用內的數據關系。

最近看CloudDB的Android SDK發(fā)布了新版本,我們就計劃對Android應用的版本同步做了升級,但是升級SDK版本,調測的時候,出現(xiàn)創(chuàng)建對象類型的錯誤。

ia_5300000002.png

具體的日志信息如下:

W/NaturalBase: CreateObjectType: has opened naturalStore.

E/AGConnectCloudDB: Failed to create object type into the AGCConnectCloudDB.

W/System.err: com.huawei.agconnect.cloud.database.exceptions.AGConnectCloudDBException: code: 3 message: Close CloudDBzone first.

問題解決

從錯誤信息中可以看到,需要我先關閉CloudDBZone再進行操作。但是不知道原因。 不官怎么說,先找找官方文檔,看看對應錯誤碼是怎么描述的。

ia_5300000003.png

看文檔描述,需要我先關閉Zone再進行操作,但是我并沒有執(zhí)行刪除CloudDBZone的操作,應該不涉及關閉CloudDBZone才對啊。

最終還是從日志和文檔分析:

1、從錯誤日志來看,我這是創(chuàng)建對象類型,也就是createObjectType方法的時候報的該錯誤。

2、再結合文檔,CloudDB初始化的流程,應該是:initialize -> createObjectType –> openCloudDBZone2

這樣問題就明確了,我需要在openCloudDBZone2之前,就先完成創(chuàng)建對象類型方法。

修改代碼執(zhí)行的優(yōu)先級順序:initialize -> createObjectType –> openCloudDBZone2,問題圓滿解決。

問題根因

咨詢華為技術支持,得到的該錯誤的根本原因:

操作涉及到了版本的升級,也就是說需要同步升級云側對象類型的schema。

在有打開且未關閉的CloudDBZone的情況下,是無法做schema升級的。

需要先完成對象類型的創(chuàng)建,在執(zhí)行openCloudDBZone的操作。

相關參考鏈接:

1、云數據庫API文檔

https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-References/clouddb-agconnectclouddbexception#getCode

2、云數據庫初始化的示例代碼與執(zhí)行步驟:

https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-clouddb-get-started#h1-1594008398022

立即登錄,閱讀全文
版權說明:
本文內容來自于華為開發(fā)者論壇,本站不擁有所有權,不承擔相關法律責任。文章內容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權,請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質服務商推薦
更多
掃碼登錄
打開掃一掃, 關注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
小程序
快出海小程序
公眾號
快出海公眾號
商務合作
商務合作
投稿采訪
投稿采訪
出海管家
出海管家