Posts on Twitter:

Firebase Firestore for iOS






















¿No sabes utilizar la terminal 💻? ¡No te preocupes! Aprende en menos de 10 minutos ⏰ comandos básicos y aprovecha para publicar tu página con el taller: Publicando Páginas con Firebase Hosting 🔥

https://deuk.io/video/taller-firebase-hosting/t01-v05


















I want to retrieve data from the database in descending order, but I do not know how, do you know who? Thank you for watching the question.





















Posts on Tumblr:

Editando

Na realidade estou apenas criando o lower third

youtube

Set Data into FirebaseDatabase

[未解決] expoでImagePickerの結果をCloud Storage for Firebaseにアップロードする

環境

  • expo@31.0.6
  • firebase@5.7.0

結論

アップロードできない

試行錯誤

いまだにexpoのFetch API / Blob対応が微妙らしく、このあたりの扱いで微妙にバグが出る。

基本的には expo/firebase-storage-upload-example を参考に実装すればOK (Fetch -> Response.blobを使わずxhrでblobに変換する)

しかし、firebase js sdkのバージョンとの兼ね合いか、ref.put(blob) 実行タイミングで以下のエラーが出ることがある

firebase Storage: Invalid argument in `put` at index 0: Expected Blob or File.

これはXHRで変換したBlobの型を多分firebase側でチェックしているからなので、再度 new Blob()して変換してあげればOK(Blob()はBlob型自体も引数に取れる)

const blob = (await new Promise((resolve, reject) => {
// ...
const forceBlobed = new Blob([blob], { type: 'image/jpeg' })
const snapshot = await ref.put(forceBlobed)
blob.close() // xhrのほうをclose()するのを忘れずに

これでputの型チェックも通る


追記

上記でできるかと思って、実際成功することもあるのに、ほとんどの場合以下のエラーで失敗する。

FirebaseStorageError {
  "code_": "storage/unknown",
  "message_": "Firebase Storage: An unknown error occurred, please check the error payload for server response.",
  "name_": "FirebaseError",
  "serverResponse_": "Multipart body does not contain 2 or 3 parts.",
}

ImagePickerのレスポンスをFileSystem.getInfoAsyncして中を見てみても

Object {
  "exists": 1,
  "isDirectory": false,
  "modificationTime": 1544410381.0105696,
  "size": 46752,
  "uri": "file:///Users/.../ImagePicker/60E21A86-2827-4DDB-8D74-F992E352592D.jpg",
}

という感じなので、中身がおかしいわけではないように見える。 ファイルタイプを外したりしても変わらずダメ。というか最初の方法では成功することもあるのが一番謎なのだが…。というわけで未解決です。

youtube

Send and receive background web push notification using FCM | Part-6

ios에서 registration id 를 관리하는 팁

ios 앱에서 firebase를 이용해서 notification 작업을 수행하는 경우. 매 기기마다 주어지는 registration id를 이용해서 각각의 기기에 push notification을 보내게된다. 이 id는 기기에서 앱이 시작될때마다 MessagingDelegate의  messaging:didReceiveRegistrationToken이 호출되고 id를 얻을수 있게 된다. 또 새로운 id가 주어진경우에도 이 함수가 호출된다. 사용자가 이미 sign in되어있는 상황에서는 sign in 과정을 거치지 않고 bypass 되므로 이경우 위해 didReceiveRegistrationToken 내에서 registration id을 저장하는 작업을 수행해야 한다.또 sign in 되어있지 않아서 sign in 과정을 거쳐야 하는 경우를 위해서 sign in 과정에서도 registration id를 저장하는 작업을 수행해 주어야 한다. 이때는 

InstanceID.instanceID().instanceID { (result, error) in
 if let error = error {
   print("Error fetching remote instange ID: \(error)")
 } else if let result = result {
   print("Remote instance ID token: \(result.token)")
   self.instanceIDTokenMessage.text  = "Remote InstanceID token: \(result.token)"
 }
}

와 같이 registration id (위의 코드에서 result.token)에 접근가능하다.

firebase cloud functions 사용

firebase cloud functions은 node js를 이용한 server없이 server기능을 이용할수 있게 해준다. 


Firebase functions ( javascript node.js를 기반으로 하고 있다)

관련자료)

Firebase functions official tutorials

https://www.youtube.com/playlist?list=PLl-K7zZEsYLkPZHe41m4jfAxUi0JjLgSM


1.화일 다운 로드 받아서 컴퓨터에 Node js v11 설치 (설치시 grpc 설치과정에서 문제 발생 이부분만 따로 또 설치)


2.컴퓨터에 sudo npm install -g firebase-tools 를 통해 firebase cli firebase-tools@6.0.1 설치


3.Visual studio code ( text editor ) 설치


4. firebase를 설치할 폴더를 만들어 그 폴더 안으로 이동


5. 터미널에 firebase login 을 실행


6. 터미널에 firebase init을 실행

npm을 통해 dependencies를 설치중 문제가 발생했었다. grpc설치에 문제 발생 이부분만 따로 다시 install했다.


visual studio에서 firebase를 위해 만들었던 폴더를 연다.

visual studio작업후에는 firebase 폴더안에 들어가서 firebase deploy를 실행한다.

youtube

firebase cloud function basic “hello world”

my review point is 9 

firebase init

firebase deploy

getting a function endpoint link


다음 비디오 :  https://youtu.be/nezhsGvrhaI

여기에서는 console log에 출력, 확인하는 방법, query string을 request에 포함하는 방법