我正在 Ionic 3 项目中使用 ts 将 Firebase 集成到我的应用程序中。 以下代码是我用来将 firebase 与 Ionic 项目集成

constructor(angFire: AngularFireDatabase){ 
} 
 books: FirebaseListObservable<any>; 

为了将数据从我的应用程序发送到 firebase,我使用了 push 方法并使用 update($key) 更新条目。现在我的所有数据都在 Firebase 后端。

现在,我如何将 firebase 数据库与 Google 表格同步,以便添加到 firebase 后端的每个条目都必须更新到表格中。我使用第三方 ZAPIER 进行此集成,但如果我能自己学习如何进行此同步,那就太好了。

网上冲浪时,有很多教程可以将数据从 google 表格导入 Firebase。但是我没有遇到任何反之亦然的教程。

我遵循了以下教程,但它并未指向电子表格。 https://sites.google.com/site/scriptsexamples/new-connectors-to-google-services/firebase

如有任何帮助,我们将不胜感激!

请您参考如下方法:

我研究了通过 JavaScript SDK 或 REST API 将 Firebase 直接导入 Google Scripts。两者都有 Google Scripts 无法满足或极难满足的要求/步骤。

  • 没有可预见的在 Google 脚本中下载 JavaScript SDK 的方法,因为几乎每种方法都需要 DOM,而 Google 表格没有。
  • REST API 需要 GoogleCredentials,乍看之下,似乎也很难进入 Google Scripts

因此,另一种选择是在真正的服务器端环境中与 Firebase 交互。这将是很多代码,但这里是我将采取的步骤:

1) 设置 Pyrebase项目,以便您可以通过 Python 与您的 Firebase 项目进行交互。

import pyrebase 
 
config = { 
    "apiKey": "apiKey", 
    "authDomain": "projectId.firebaseapp.com", 
    "databaseURL": "https://databaseName.firebaseio.com", 
    "storageBucket": "projectId.appspot.com", 
    "serviceAccount": "path/to/serviceAccountCredentials.json" 
} 
firebase = pyrebase.initialize_app(config) 
 
... 
 
db = firebase.database() 
all_users = db.child("users").get() 

2) 设置 Google Scripts/Sheets项目作为可以与您的 Google 表格交互的类

from __future__ import print_function 
import httplib2 
import os 
 
from apiclient import discovery 
from oauth2client import client 
from oauth2client import tools 
from oauth2client.file import Storage 
 
try: 
    import argparse 
    flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args() 
except ImportError: 
    flags = None 
 
# If modifying these scopes, delete your previously saved credentials 
# at ~/.credentials/sheets.googleapis.com-python-quickstart.json 
SCOPES = 'https://www.googleapis.com/auth/spreadsheets.readonly' 
CLIENT_SECRET_FILE = 'client_secret.json' 
APPLICATION_NAME = 'Google Sheets API Python Quickstart' 
 
class GoogleSheets: 
 
    ... 
    # The rest of the functions from that link can go here 
    ... 
 
    def write(self, sheet, sheet_name, row, col): 
        """ 
            Write data to specified google sheet 
        """ 
 
        if sheet == None or sheet == "": 
            print("Sheet not specified.") 
            return 
 
        day = time.strftime("%m/%d/%Y") 
        clock = time.strftime("%H:%M:%S") 
        datetime = day + " - " + clock 
        values = [[datetime]] 
 
        spreadsheetId = sheet 
        rangeName = sheet_name + "!" + str(row) + ":" + str(col) 
        body = { 
            'values': values 
        } 
 
        credentials = self.get_credentials() 
        http = credentials.authorize(httplib2.Http()) 
        discoveryUrl = ('https://sheets.googleapis.com/$discovery/rest?' 
                'version=v4') 
        service = discovery.build('sheets', 'v4', http=http, 
                          discoveryServiceUrl=discoveryUrl) 
        result = service.spreadsheets().values().update( 
            spreadsheetId=spreadsheetId, range=rangeName, 
            valueInputOption="RAW", body=body).execute() 

3)在您的 Pyrebase 项目中的某处调用 Google 表格

from GoogleSheets import GoogleSheets 
 
... 
 
g = GoogleSheets() 
g.write(<project-id>, <sheet-name>, <row>, <col>) 
 
... 

4) 设置一个 cron 作业以每隔一段时间运行 python 脚本

# every 2 minutes 
*/2 * * * * /root/my_projects/file_example.py 

您将需要一些基本服务器(Heroku、Digital Ocean)来运行它。

这并不广泛,因为要编写的代码很多,但您可以完成基础知识。让我们现在想做一个包。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!