Skip to content

Instantly share code, notes, and snippets.

View puf's full-sized avatar

Frank van Puffelen puf

View GitHub Profile
@puf
puf / Listen for authentication state.java
Created January 5, 2021 23:35
Listen for authentication state in Android
// In Firebase it is often better to *react* to authentication state
// changes, instead getting the current authentication state everywhere.
// To respond to auth state changes, use an auth state change listener
// like this:
FirebaseAuth auth = FirebaseAuth.getInstance();
auth.addAuthStateListener(new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
if (firebaseAuth.getCurrentUser() == null) {
Log.i("firebase", "AuthState changed to null");
@puf
puf / Detect write errors in Firebase Realtime Database in Android.java
Last active January 5, 2021 23:02
Detect write errors in Firebase Realtime Database in Android
// To detect when a write operation is rejected by your Realtime Database
// security rules, add a completion listener to the `setValue()` call and
// throw the exception if the task failed.
val ref = FirebaseDatabase.getInstance().getReference()
ref.push()
.setValue(ServerValue.TIMESTAMP)
.addOnCompleteListener(new CompletionListener() {
@Override
public void onComplete(Task<Void> task) {
Log.i("firebase", String.valueOf(task.isSuccessful()))
@puf
puf / README.md
Last active March 28, 2023 16:37
Firebase Hosting Deploy Single File

This script may no longer work. Have a look at its (more official) replacement: https://github.com/firebase/firebase-tools/tree/master/scripts/examples/hosting/update-single-file

Firebase Hosting Deploy Single File

This utility script deploy a single local file to an existing Firebase Hosting site. Other files that are already deployed are left unmodified.

The difference with firebase deploy is that this script does not require you to have a local snapshot of all hosted files, you just need the one file that you want to add/update.

@puf
puf / index.html
Last active January 15, 2023 19:41
Zero to App: Develop with Firebase (for Web - Google I/O 2016)
<html>
<head>
<script src="https://www.gstatic.com/firebasejs/3.0.0/firebase.js"></script>
<title>ZeroToApp</title>
<style>
#messages { width: 40em; border: 1px solid grey; min-height: 20em; }
#messages img { max-width: 240px; max-height: 160px; display: block; }
#header { position: fixed; top: 0; background-color: white; }
.push { margin-bottom: 2em; }
@keyframes yellow-fade { 0% {background: #f2f2b8;} 100% {background: none;} }
@puf
puf / ChatMessage.java
Last active July 12, 2021 21:56
Zero to App: Develop with Firebase (for Android - Google I/O 2016)
package com.google.firebase.zerotoapp;
public class ChatMessage {
public String name;
public String message;
public ChatMessage() {
}
public ChatMessage(String name, String message) {
@puf
puf / WaitForInitialValue.java
Last active March 3, 2018 18:27
Waiting for an initial value
public class Main {
static ValueEventListener mListener;
public static void main(String[] args) throws Exception {
Firebase ref = new Firebase("https://<your-app>.firebaseio.com/");
mListener = ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
if (snapshot.exists()) {
System.out.println("The value is now "+snapshot.getValue());
@puf
puf / acknowledge.js
Created January 26, 2016 00:58
Account merging
var ref = new Firebase('https://yours.firebaseio.com/acknowledge');
var users = [];
function $(selector) {
var result = document.querySelectorAll(selector);
return (result.length > 1) ? Array.prototype.slice.call(result) : result[0];
}
function handleAuthResult(error, authData) {
if (error) {
@puf
puf / index.android.js
Created December 14, 2015 17:52
Simple example of a React Native chat app for Android (using Firebase and ReactFire)
'use strict';
var React = require('react-native');
var Firebase = require('firebase');
var ReactFireMixin = require('reactfire');
var {
AppRegistry,
StyleSheet,
Text,
View,
@puf
puf / index.android.js
Created December 14, 2015 17:51
Simple example of a React Native chat app for Android (using Firebase)
'use strict';
var React = require('react-native');
var Firebase = require('firebase');
var {
AppRegistry,
StyleSheet,
Text,
View,
TextInput,
@puf
puf / gist:c7b0612b6ffbb5f6b1cd
Last active August 29, 2015 14:23
Create a Firebase email/password user in Java
new Firebase("https://yours.firebaseio.com/").createUser("user@domain.com", "password", new Firebase.ValueResultHandler<java.util.Map<String, Object>>() {
public void onSuccess(java.util.Map result) {
System.out.println("Successfully created user account with uid: " + result.get("uid"));
}
public void onError(com.firebase.client.FirebaseError firebaseError) {
System.err.ptinln("Error while creating user " + firebaseError);
}
});