私はFirebaseの初心者です。
以下のルールをどのようにすればいいですか?
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
ルールを以下に変更しようとしましたが、
{
"rules":
{
".read": true,
".write": true,
}
}
しかし、エラーがあります
mismatched input '{' expecting {'function', 'service', 'syntax'}
以下はdb構造です。
現在、これは私のコードです(これはPermission-deniedを返し続けます):
// [START initialize_database_ref]
mDatabase = FirebaseDatabase.getInstance().reference
// [END initialize_database_ref]
val result = HashMap<String, Any> ()
result.put("timestamp", getCurrentTime())
result.put("user_id", USER_ID)
result.put("x_position", -1)
result.put("y_position", -1)
mDatabase!!.ref.child("raw data").child("Z9QD79lDzP7MpD6feWeJ").setValue(result).addOnFailureListener(object : OnFailureListener {
override fun onFailure(@NonNull e: Exception) {
Log.d("firebase", e.localizedMessage)
}
})
何か助けていただければ幸いです!ありがとう:)
この問題に苦しんでいる他の人にとって、適切な解決策はfalse
を
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
テスト中にtrue
に。 プロジェクトを公開するときにセキュリティを追加することを忘れないでください!
「Realtime Database」または「Cloud Firestore」を使用している場合は、Angular NgModuleおよびコンポーネントをチェックインする必要があります。「angularfire2」を使用した違いを参照してください。
リアルタイムデータベース
@NgModule({
...
imports: [
AngularFireDatabaseModule,
...
],
providers: [
AngularFireDatabase,
...
]
})
@Component({...})
export class FirestoreComponent{
constructor(private realtimeDb:AngularFireDatabase, ...) {
this.locations = realtimeDb.list('locations').valueChanges();
}
...
}
クラウドファイアストア
@NgModule({
...
imports: [
AngularFirestoreModule,
...
]
})
@Component({...})
export class FirestoreComponent{
constructor(private firestore:AngularFirestore, ...) {
this.locations = firestore.collection('locations').valueChanges();
}
...
}
メソッドはCloud FirestoreではなくFirebaseをクエリするため、このメソッドを使用する必要があります。
FirebaseFirestore db = FirebaseFirestore.getInstance();
db.collection("YourCollectionName").get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
Log.d(TAG, document.getId() + " => " + document.getData());
}
} else {
Log.w(TAG, "Error getting documents.", task.getException());
}
}
});
これを忘れないでください:
implementation 'com.google.firebase:firebase-firestore:17.0.1'