<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          華為 AppGallery Connect云數(shù)據(jù)庫到底有多牛?

          共 3855字,需瀏覽 8分鐘

           ·

          2021-12-24 04:14

          點擊“開發(fā)者技術(shù)前線”,選擇“星標(biāo)”
          讓一部分開發(fā)者看到未來
          ? ? 背景????

          我們在開發(fā)每一個 APP 應(yīng)用時,都需要構(gòu)建多個服務(wù),包括前端頁面,后端服務(wù),服務(wù)器和數(shù)據(jù)庫。

          特別是涉及到數(shù)據(jù)這一塊,面臨的挑戰(zhàn)更多,典型的挑戰(zhàn)包含本地數(shù)據(jù)的離線使用、云端與離線數(shù)據(jù)的一致性、不同終端數(shù)據(jù)的同步、數(shù)據(jù)如何安全傳輸,以及在一些特殊場景下,如何應(yīng)對短時但集中的大流量,還有如何保證數(shù)據(jù)的安全可靠,以及數(shù)據(jù)的備份與恢復(fù)等。

          這些問題會導(dǎo)致我們的開發(fā)工作量巨大,同時還會帶來很多技術(shù)上的難題,以及與不同人員的溝通與協(xié)同等。

          HUAWEI AppGallery Connect 平臺推出的云數(shù)據(jù)庫功能可以很好地幫助我們解決以上技術(shù)難題,接下來我們就嘗試使用云數(shù)據(jù)庫來構(gòu)建我們的應(yīng)用。

          云數(shù)據(jù)庫

          HUAWEI AppGallery Connect Serverless 構(gòu)建服務(wù)具有免運維、成本低、上線快、跨平臺的特點,包括認(rèn)證服務(wù)、云函數(shù)、云數(shù)據(jù)庫、云存儲、云托管,其中云數(shù)據(jù)庫簡稱“Cloud DB”,是一款端云協(xié)同的數(shù)據(jù)庫產(chǎn)品,提供端云數(shù)據(jù)的協(xié)同管理、統(tǒng)一的數(shù)據(jù)模型和豐富的數(shù)據(jù)管理 API 接口,簡單易用的端 / 云 SDK,適用于移動端(HarmonyOS、Android、iOS)、網(wǎng)頁(Web)和服務(wù)器開發(fā),滿足開發(fā)者一次開發(fā),多平臺部署,有效提高開發(fā)效率。在保證數(shù)據(jù)的可用性、可靠性、一致性以及安全等特性基礎(chǔ)上,實現(xiàn)數(shù)據(jù)在客戶端和云端之間的無縫同步,并為應(yīng)用提供離線支持,以幫助開發(fā)者快速構(gòu)建端云、多端協(xié)同的應(yīng)用。

          Cloud DB 采用基于對象模型的數(shù)據(jù)存儲結(jié)構(gòu),支持多種數(shù)據(jù)類型,包括簡單的字符串、數(shù)值以及文本等,并提供基于對象操作的 API 接口,支持單個或批量操作對象,如新增、修改、刪除和查詢等。通過對需要關(guān)注的數(shù)據(jù)進(jìn)行訂閱,可自動將發(fā)生變化的數(shù)據(jù)在本地與云端和多設(shè)備間進(jìn)行實時同步。

          ? ? 構(gòu)建? ??

          Cloud DB 支持多個平臺,包含 Android、iOS、Web、快應(yīng)用等客戶端,本次我們以安卓客戶端為例來進(jìn)行構(gòu)建。

          環(huán)境搭建
          1. 安裝“Android Studio”,并升級至最新版本。

          2. 為保證兼容性,要求最低兼容版本:Android 4.4(API Level 19)

          3. 集成 SDK。

          接入 Cloud DB
          在使用 Cloud DB 服務(wù)之前,我們需要先完成以下準(zhǔn)備工作:
          1. 注冊華為開發(fā)者帳號并通過實名認(rèn)證

          2. 打開 AppGallery Connect 網(wǎng)站并簽署協(xié)議

          3. 協(xié)議簽署后,即可在 AppGallery Connect 上創(chuàng)建項目

          4. 在剛剛創(chuàng)建的項目上創(chuàng)建應(yīng)用


          5. 至此我們的項目和應(yīng)用都已經(jīng)創(chuàng)建成功了

          啟用 Cloud DB

          在使用 Cloud DB 之前,我們需要先啟用 Cloud DB 服務(wù)

          1. 開通 AppGallery Connect 認(rèn)證服務(wù),點擊“立即開通”

          2. 華為的認(rèn)證方式非常豐富,但此次我們只使用到云數(shù)據(jù)庫,所以匿名認(rèn)證即可

          使用和管理 Cloud DB

          現(xiàn)在,我們可以對存儲區(qū)中的對象類型進(jìn)行管理,創(chuàng)建、修改、導(dǎo)出和導(dǎo)入等操作。

          1. 創(chuàng)建對象類型,我們可以創(chuàng)建字段、索引和數(shù)據(jù)權(quán)限

          • 創(chuàng)建對象類型(類型于 mysql 中的表)

          • 創(chuàng)建對象字段,對象 UserInfo 字段定義如下:

          • 創(chuàng)建對象索引

          • 設(shè)置數(shù)據(jù)權(quán)限

          2. 現(xiàn)在我們的云數(shù)據(jù)庫已經(jīng)創(chuàng)建好了,但在使用前還需要先創(chuàng)建存儲區(qū)(類似于 mysql 中的數(shù)據(jù)庫)

          3. 存儲區(qū)創(chuàng)建成功后,我們就可以對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行增刪改查等操作了

          部署,在項目中集成 SDK

          云數(shù)據(jù)庫創(chuàng)建完成后,我們就可集成到我們的項目中了。

          打開 AppGallery Connect 網(wǎng)站找到我們創(chuàng)建的項目,在“項目設(shè)置”頁面下載配置文件“agconnect-services.json”到本機

          將下載的 agconnect-services.json 添加到我們的 Android 項目中

          打開項目根目錄下的 build.gradle 文件,配置華為 maven 倉庫和插件地址

          注意:Gradle 7.0 版本后,“allprojects > repositories”配置已遷移到項目級“settings.gradle”文件中。

          Gradle 7.0 之前版本在 build.gradle 文件里設(shè)置 (allprojects ->repositories)

          打開項目 app 目錄下的 build.gradle 文件,添加 agcp 插件配置和數(shù)據(jù)庫依賴, 如使用 AppGallery Connect 的其他服務(wù)也需在此添加信賴

          所有配置修改完成后,右上方出現(xiàn)“Sync Now”鏈接,點擊“Sync Now”等待同步完成。

          導(dǎo)入數(shù)據(jù)表字段模型
          在 AppGallery Connect 上, 我們可以將創(chuàng)建的對象類型導(dǎo)出到本地,再復(fù)制到項目中的 mode 目錄下即可直接使用了
          初始化

          在添加對象類型文件后,我們就可以使用華為的云數(shù)據(jù)庫進(jìn)行應(yīng)用開發(fā)了,首先初始化 AGConnectCloudDB、并創(chuàng)建 Cloud DB zone 和對象類型。

          通過 getInstance()方法獲取 AGConnectCloudDB 實例,并使用 createObjectType()創(chuàng)建對象類型。

          創(chuàng)建 Cloud DB zone 配置對象后,即可訪問 Cloud DB 數(shù)據(jù)庫。

          寫入和修改數(shù)據(jù)

          通過調(diào)用 AGConnectCloudDB 實例的 executeUpsert () 可實現(xiàn)數(shù)據(jù)的寫入,如果云數(shù)據(jù)庫中已經(jīng)存在主鍵相同的對象,則更新,否則寫入一個新的對象。

          數(shù)據(jù)查詢

          通過調(diào)用 executeQuery()、addOnSuccessListener() 和 addOnFailureListener() 方法組合,實現(xiàn)異步方式查詢數(shù)據(jù)。

          Cloud DB 支持豐富的功能供我們對數(shù)據(jù)進(jìn)行操作,包含條件查 (where),排序 (orderByAsc,orderByDesc),限定返回結(jié)果集對象數(shù)量 (limit) 等功能,我們只需要調(diào)用 SDK 指定的方法和參數(shù)即可。

          刪除數(shù)據(jù)

          通過調(diào)用 executeDelete 方法可刪除指定的對象數(shù)據(jù)。

          數(shù)據(jù)同步

          通過注冊數(shù)據(jù)變化偵聽器,我們可以很方便的對云端和本地數(shù)據(jù)進(jìn)行數(shù)據(jù)同步具體方法:通過查詢條件與 subscribeSnapshot() 方法組合使用,可以指定偵聽對象,當(dāng)偵聽對象的數(shù)據(jù)發(fā)生變化時,應(yīng)用端會收到通知,根據(jù)快照獲取變化的數(shù)據(jù)信息,從云側(cè)同步數(shù)據(jù)至應(yīng)用端側(cè)應(yīng)用。注意:數(shù)據(jù)同步模式需為緩存模式。

          ?事務(wù)與數(shù)據(jù)管理

          使用 runTransaction() 方法,Cloud DB 可以支持事件操作,事務(wù)是原子的,一個事務(wù)內(nèi)的所有操作要么全部執(zhí)行成功,要么全部執(zhí)行失敗。如果執(zhí)行事務(wù)時出現(xiàn)并發(fā)寫入,Cloud DB 會再次嘗試執(zhí)行整個事務(wù),確保整個事務(wù)操作的一致性。注意:事務(wù)操作需要 Cloud DB 的數(shù)據(jù)同步模式為緩存模式。

          數(shù)據(jù)的安全性

          Cloud DB 還提供了對通信、應(yīng)用、用戶提供隱私或者敏感數(shù)據(jù)的全程加密管理。該功能開啟后,用戶數(shù)據(jù)將在應(yīng)用端進(jìn)行加密,然后以密文形式發(fā)送并存儲到云側(cè),只有用戶依據(jù)其輸入的密碼獲取密鑰信息后才能訪問自己的加密數(shù)據(jù)。只有用戶自己才能訪問自己的數(shù)據(jù),應(yīng)用端和云數(shù)據(jù)庫都無法訪問, 有效提高了用戶數(shù)據(jù)的安全性,杜絕了用戶數(shù)據(jù)在云端泄露的風(fēng)險。

          以上,我們通過華為 SDK 提供的幾個方法,就完成了對云數(shù)據(jù)庫的訪問,數(shù)據(jù)的增刪除改查等操作,同時也完成了離線數(shù)據(jù),多端數(shù)據(jù)同步,數(shù)據(jù)安全與事務(wù)等眾多功能

          ? ? 優(yōu)勢? ??

          通過以上示例,我們可以得到 Cloud DB 具有以下優(yōu)點

          1. 極簡開發(fā),多平臺 SDK 支持,目前支持 Anroid,IOS,JS, 快應(yīng)用等

          2. 端云數(shù)據(jù)實時同步、多設(shè)備數(shù)據(jù)協(xié)同以及離線數(shù)據(jù)可用的能力,輕松實現(xiàn)多端數(shù)據(jù)協(xié)同

          3. 提供通信、應(yīng)用、用戶三重認(rèn)證,數(shù)據(jù)加密存儲,事務(wù)管理等

          4. 無需運維,不再需要關(guān)注數(shù)據(jù)的管理,安全,維護(hù)等,同時可按使用量進(jìn)行計價

          5. 按需彈性伸縮,支持?jǐn)?shù)據(jù)庫高并發(fā),我們只聚焦業(yè)務(wù)開發(fā)即可

          6. 無需要開發(fā)者特殊處理,即可實現(xiàn)應(yīng)用離線可用功能

          7. 支持豐富的數(shù)據(jù)類型,基本類型、文本、數(shù)據(jù)、日期等

          8. Cloud DB 作為 HUAWEI AppGallery Connect 服務(wù)的一部分可跟其他服務(wù)完美接入,包括 Serverless、認(rèn)證、眾測、質(zhì)量等

          9. 開發(fā)者社區(qū)已經(jīng)十分成熟,開發(fā)文檔,示例 DEMO 等資料都很齊全

          其他相同產(chǎn)品對比

          通過與其他產(chǎn)品對比可發(fā)現(xiàn) HUAWEI AppGallery ConnectCloud DB 無論是在產(chǎn)品特性上還是在收費標(biāo)準(zhǔn)上都更有優(yōu)勢。

          ? ? 總結(jié)? ??

          正如本文所述,HUAWEI AppGallery Connect Cloud DB 是一款端云協(xié)同的數(shù)據(jù)庫產(chǎn)品,在數(shù)據(jù)安全,多端數(shù)據(jù)同步,事務(wù)處理,多 SDK 支持,彈性伸縮,可擴(kuò)展,跨平臺方面的優(yōu)勢,都極大地減輕了我們開發(fā)者的工作量。



          瀏覽 84
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美国产精品一二三产品在哪买 | 天天色,天天干,天天 | 国产一站免费 | 日韩一级黄色视频 | 午夜视频网址 |