ログインしようとした後、私が保存しているデータがどのようにどこにあるのかを理解しようとしましたが、わかりません。
public static final String BASE_URL = "https://xyz.firebaseio.com";
Firebase ref = new Firebase(FirebaseUtils.BASE_URL);
ref.authWithPassword("[email protected]", "some_password", new Firebase.AuthResultHandler() {
@Override
public void onAuthenticated(AuthData authData) {
Toast.makeText(LoginActivity.this, "Login Successful", Toast.LENGTH_SHORT).show();
startActivity(new Intent(LoginActivity.this, MainActivity.class));
}
@Override
public void onAuthenticationError(FirebaseError firebaseError) {
}
}
この時点で、私は認証され、MainActivity
に到達しました。次はonCreate
/MainActivity
です。初期化Firebase
firebase = new Firebase(FirebaseUtils.BASE_URL).child("box");
// adapter below is an ArrayAdapter feeding ListView
firebase.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
if (dataSnapshot.getValue(Box.class) instanceof Box)
adapter.add(dataSnapshot.getValue(Box.class).getName());
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
adapter.remove(dataSnapshot.getValue(Box.class).getName());
}
// other callbacks
}
Android to Firebase
から新しいレコードをプッシュするために使用した追加ボタンがあります。
final Button button = (Button) findViewById(R.id.addButton);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Box box = new Box("Box " + System.currentTimeMillis(), "Location " + System.currentTimeMillis());
Firebase fbBox = firebase.child("" + System.currentTimeMillis());
fbBox.setValue(box);
}
});
しかし、上記のコードはレコードを追加しません(ListView
から明らかですが、更新されていません)。または、少なくともデータの検索場所がわからない可能性があります。ブラウザでFirebase
を開くことを確認しましたが、ユーザー固有のデータを確認する方法がわかりません。
Firebase Rules
を次のように変更しました
{
"rules": {
"users": {
"$uid": {
".write": "auth != null && auth.uid == $uid",
".read": "auth != null && auth.uid == $uid"
}
}
}
}
https://xyz.firebaseio.com/xxxxxx-xxxxx-xxxx-xxxxx-xxxxxxxxxxxx などのURLを開こうとしましたが、データが表示されませんでした。
私はいくつかの情報が欲しいのですが:
認証後にユーザー固有のデータを追加する方法。簡単にデータを読み書きできるので、ユーザーごとの読み書きに制限がない場合のようにシームレスにできません。
Androidデバイスへ/からデータを表示/変更できる場所で、データベースを視覚化したりJSONデータを表示したりするためのFirebase
Webビューはありますか?
まず、Firebaseルールを次のように変更します:
{
"rules": {
"users": {
"$uid": {
".write": "$uid === auth.uid",
".read": "$uid === auth.uid"
}
}
}
}
次に、Javaコード:
Firebase rootRef = new Firebase("https://user-account.firebaseio.com/");
// Assuming the user is already logged in.
Firebase userRef = rootRef.child("users/" + rootRef.getAuth().getUid());
userRef.child("message1").setValue("Hello World");
結局、データは次のようになります:
Webエンドの場合
JavaScriptコード:
var user = firebase.auth().currentUser;
if (user != null) {
uid = user.uid;
firebase.database().ref('/users/'+uid).Push({
foo: 'abc',
bar: 'pqr'
});
}
詳細については https://firebase.google.com/docs/auth/web/manage-users#get_the_currently_signed-in_user をご覧ください。